Validator should accept JSON::Schema objects

Related to my plans in #182; caching inner schemas is only so useful if we still have to recreate them all for every separate validation call.

`Validator.validate` et al only accept strings or hashes right now, but if I want to validate *a lot* of JSON, I've probably pre-registered all my schemas, and I'd like to just re-use those pre-existing instances.

An alternative would be to make `JSON::Schema#validate` simpler to use directly. Any thoughts on what would make more sense? I favor modifying `Validator.validate` for now, since we'd still have access to `fully_validate` and all the options etc etc.