Catch up on validator features from 2.0.0

This one mainly adds support for default messages, "allowEmpty" option and optimizations.