Add JSON schemas for data to be sent to the API

We haven't yet decided exactly how optional fields should be handled;
we want consistent data in the content-store for fields which aren't
present, and some ways of achieving that may involve adding restrictions
for those fields in the schema, but we think that the structure of the
fields themselves is unlikely to change significantly.

This also includes validation tests of minimal and maximal JSON examples,
which are easier to read than the schemas themselves.