Add documentation for BaseDataWriter
Simplify BaseDataWriter

Removed unnecessary member variable since it is as easy just to cast this
reference manually.
Add CombinedValidatorFactory

CombineValidatorFactory can combine one or more ValidatorFactoriy
instances so that the user doesn't need to create new classes just to
support existing ValidatorFactories. Also helps to make the right type of
combination of excisting ValidatorFactories. Previously if the user wanted
to support both JSR-303 and custom validators, the user had to either add
all JSR-303 validators to the custom ValidatorFactory or extend from
JSR303ValidatorFactory which only works with one existing
ValidatorFactory.
Explain why BaseValidator uses annotated inits