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.
I'm liking FailureReasonType (or FailureCause)  ("type" feels sort of redundant)