basic schema validation

This addresses 1 & 2 from #58.

* Reject schema if malformed XML.
* Reject schema if necessary fields are not present.
* Add schema admin tests.
* Fix bug in delete-by-id.
* Add `yz_str` field type to allow users to define their own string field type.