Abstract validation logic into separate gem

/cc @arfon, @johndbritton
> The constants will replace each other, like methods: http://stackoverflow.com/a/13234497

Right, but the problem is it extends a class in another Gem, that may not exist when Bundler is processing the Gemspec, depending on ordering. I guess I could stubb out a dummy class, but didn't seem worth the complexity.