Simplify Attributes::TypeV4.validate
Unnest `Attributes::*.validate` method bodies

Many/most began with a guard against the data type; this just lessens
some of the rightward drift to make them slightly more approachable and
and reduce the CodeClimate complexity score a bit.
Implement multipleOf atop divisibleBy
Derive IP{4,6} from parent IPAttribute
Reduce flog score for Validator#build_schemas
General attributes/*.rb refactor

Mostly extractions to local variables or minor unnesting.
Derive PropertiesV4 from Properties
LimitAttribute: min/max{Items,Props,Length,...}

The code in `limit.rb` is a bit insane and over-abstract now, but I'm
trying to keep the same classes in place for now so that I don't
simultaneously have to rewrite a ton of Schema::Draft1, ::Draft2 etc.
Simplify common inner-schema pattern
Derive DependenciesV4 from Dependencies
Remove unused locals and unneeded each_with_index
Simplify conditional in AdditionalItemsAttribute
Use RFC 2606 reserved invalid DNS name in tests.

This test used a DNS name which, while currently not existing, is not
actually reserved. This can manifest as a test failure on poorly
configured (like Time Warner Cable) networks. This changes said DNS
name to one using a reserved invalid top level name as specified in
RFC 2606.
Refactor ref schema URI construction.

This refactors JSON::Validator#load_ref_schema to not implement a lot
of logic that Pathname and URI are already capable of, and splits some
of it into a separate method for clarity. Some JSON::Validator class
methods are also added to hide away the specific implementation of
how already loaded schemas are kept around.

* Refactor JSON::Validator#load_schema_ref to move absolute URI
  construction to its own method, and to bail ASAP if the schema is
  already loaded.
* Add JSON::Validator#absolutize_ref_uri to handle logic around
  constructing an absolute URI to a schema based on the ref URI and
  its parent schema URI.
* Add JSON::Validator.schema_for_uri to fetch an already loaded schema
  for a given URI.
* Add JSON::Validator.schema_loaded? predicate method for testing
  whether a schema is already loaded.
* Move some existing code to use the new class methods.
Merge pull request #176 from gabrielg/master

Use RFC 2606 reserved invalid DNS name in tests.
Merge pull request #177 from gabrielg/refactor-ref-schema-uri-construction

Refactor ref schema URI construction.
Merge pull request #172 from pd/better-climate

General cleanup, mostly focused on attributes/*
Only stringify schema once
Merge pull request #180 from treppo/master

Only stringify schema once