Add extra hooks, more uniform validation.
Add extra hooks, more uniform validation.

* This makes required field testing a part of validate().
* Adds an extra hook (which is probably wrong) to allow post-creation
  subclass initialization. Used to add required_fields-like merged set
  functionality elsewhere, although this is likely the wrong approach.

Narrato/mongotron