3.0 validation revisit

I wanted some early feedback on the approach I'm taking to solve the issues expressed in https://github.com/cakephp/cakephp/issues/5167

Some of the highlights:

* Validation is now done during the marshalling process
* All `Table::validate*()` methods are gone
* Validators can still be defined in the table classes
* Introduced the concept of `Domain Rules`
* Added a couple built-in domain rules, more ideas are welcomed

The following problems still need to be solved:

* The `Model.*Validate` is gone, not sure where to re-introduce it
* Validation errors in the entity should be merged instead of overridden
* There should be a way to get all errors for an entity and all deep associations

I'll work on adding doc blocks and more tests if we consider this is a good approach.
Why not allow this checker to take arbitrary columns, and default to the primary key? That would make it more general purpose.