Wrap validated() only on output() methods

validated() was previously wrapped on both output() and format() methods, but
not consistently, missing from some fields. Wrapping format() is also
redundant as it is called from output().
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.
Merge pull request #25 from asteinlein/refactored-required-validation

Move required validation to avoid custom validation messages overriding required message