Move required validation to validated() and change its error message

This feels like a better place to do the required validation, and allows
for custom error messages (such as "Invalid email address" on an Email
field) not to override the required error message if the value is
actually missing as opposed to otherwise being invalid.

The error message for required validation is also changed to be more
similar to the other validation errors: The field name is already in the
error dictionary and is redundant to repeat.