[WIP] Convert CastErrors to ValidationErrors on save

Related to #1587 and #1013

This allows multiple `CastError`s to be detected, by presenting them as `ValidationError`s