Refactor the validators to use method_missing

* this way we no more need to care about gem loading order
* extending from BasicObject to avoid hitting Object#presence for the presence validator
Better extending from ActiveSupported BasicObject because we're raising from within
Testing against Rails 4