[WIP] Return validation errors via the REST API

Enable a structured validation error response (422) that returns each validation error.  Normalize the field value for validation errors so that it corresponds to the real JSON value (rather than the internal value).  Use the same constants in api/types.go and api/errors/errors.go for validation errors.
ReasonType has snake case for its values, should probably be consistent one way or the other.