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.
Use Addressable gem for URI handling
Test against maliciuous relative links
Explicitly tell rubies about UTF-8
Move addressable dependency to gemspec
Use to_s to trigger URI validation
Adjustments to refactored URI building/fetching