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().
Fix bug with passing "extra" together with "many=True"

[fixes #24]
Update travis.yml
DRY up the marshalling code
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
Bump dev version and update changelog
Add AUTHORS.rst
Add error_handler param to Marshaller
Add Serializer.error_handler decorator
Update docs
Run process_data after adding "extra" data
Add Serizlier.data_handler decorator and deprecate process_data
Fix error_handler
Data handlers also receive original object
Update docs ("extending" page)
Use pytest-style setup
Bump version -> 0.7.0