Type descriptors

The code generated by schemac includes struct eu_metadata definitions.
This means that struct eu_metadata will be fixed, making evolution of the
euphemus runtime library very difficult.

Instead, schemac should generate definitions in a format that is
not locked to the data structures used by euphemus library internals.
eu_type_descriptor provides the basis for such a format.
eu_metadata will in future jut be an internal format (although
struct eu_metadata pointers will still be used by client code).
Generated code defining struct descriptors, not struct metadata