Work in progress - DO NOT MERGE - opening this so it's a bit easier to see the diff and keep a list of things to do.

To do:

Should the module types without a specific schema default to module?
Solihull is very wrong - fix it? Module types are wrong?
Add validation on the validate method - not as part of the api
what does clearer errors mean?
continue with draft3?
axis in options?