Simplified the callback API.

1. Callbacks will always be called if required is present and all other rules pass.
2. If required is not present and the field is empty, a callback will not be called.
3. If the conditions in #2 are met, a callback will be forced to call if it is preceded by a !.