Tweak Validator API to be more user friendly.

Using `allowEmpty('field', false);` doesn't read as well as
`notEmpty('field)`. I feel the mode will be less frequently used over
setting a custom message, so switch the order of those parameters
around.
Update bake generated code to use new validator api.
Add mode to notEmpty() and remove message from allowEmpty().

Having `$message` for allowEmpty() doesn't make sense as it will only
remove validation errors now, not cause them to be triggered. Add
`$mode` to notEmpty() as it is very relevant there.
Expand unit tests and fix issue with notEmpty().
Add additional tests for intersection of notEmpty()/allowEmpty()
Merge pull request #3435 from markstory/3.0-validation-tweaks

RFC - 3.0 validation tweaks