Alternatively, support YAML for schemas and data

Also clean up some of the interfaces around reading files and do some better
error handling.