3.0 conditional validation

Implements the ideas brought by https://github.com/cakephp/cakephp/issues/3757
Could we run into similar issues with userland providers? Should there be a table method to prepare the validator with a given entity? That might reduce the duplication here, and provide a place for userland providers.