Traits for rusty Move types and their type tags.
The core items are MoveType and MoveTypeTag. These
are useful trait bounds to use when dealing with generic off-chain Move type representations.
They are implemented for the primitive types that correspond to Move's primitives
(integers/bool).
For Move structs, MoveDatatype should be used as it has an
associated MoveDatatypeTag. The
MoveDatatype derive macro is exported for automatically
creating a MoveDatatypeTag implementation from normal Rust struct declarations.