Attribute macro for less verbose creation of enums having different types as variants. Also automatically implements From.

Usage:

```rs struct A; struct B; struct C; struct D;

[tyenum]

enum Test { A, BB(B), C(C), } ```

results in:

```rs enum Test { A(A), BB(B), C(C), }

impl From for Test { fn from(variant: A) -> Self { Test::A(variant) } }

impl From for Test { fn from(variant: B) -> Self { Test::BB(variant) } }

impl From for Test { fn from(variant: C) -> Self { Test::C(variant) } } ```