Organize code to match the internal behavior in the ActiveModel::Validations

- the `validates_with` class method contains in the `validations/with.rb` is closely coupled with the `validates` and `validates_with` defined in `validations.rb`
- The `HelperMethods` deserves its own file instead of mixing it with the `with.rb` as it is accessed by all the individual validators.

With the two modification, now `with.rb` serves the same role as `length.rb`, `format.rb` as a kind of `EachValidator`.