Make struct descriptor versioning explicit
Introduce a schema for schemas, and use it for parsing schemac

This commit merely adds the schema and modifies schemac to use it when
parsing.  The bulk of schemac.c still works in terms of eu_values.

The generated files schema_schema.[ch] have to be checked in to avoid
a bootstrapping problem.  As schemac's capabilites grow,
schema_schema.json can be elaborated, and new versions of
schema_schema.[ch] will be committed.  With some care, it should be
possible to avoid dead ends in this process.
Convert schemac to take advantage of generated code