Add schema validation as a feature
Whenever possible, produce error messages rather than exceptions
Merge branch 'iarna-schema-validation'