Datastore input in rarely validated

- [x] Use schemas for validation
- [x] Do no 500 on wrong data types passed to create or upsert

Also fixes #917