--------------
Add type coercion and validation. Attribute values for builtin types (e.g. int)
are now coerced before inserting into the db, and for types that use more
permissive primitive types in the db (e.g. uuids stored as strings), values are
also validated to be correctly coercible back when retrieving from the db.