Using `anyOf` shouldn’t fill JSON object with defaults of non-matching subschemas

Prior to this change, a JSON object validating against `anyOf` would be mutated by each subschema with default values, even if that subschema then failed validation. These new properties would then be present in the JSON for validation against subsequent subschemas.

Now, on subschema validation failure we set the JSON data back to the original data. So only the defaults of the first matching subschema persist after returning from the call to `validate`.
Using `oneOf` shouldn’t fill JSON object with defaults of non-matching subschemas

Prior to this change, a JSON object validating against `oneOf` would be mutated by each subschema with default values, even if that subschema then failed validation. These new properties would then be present in the JSON for validation against subsequent subschemas.

Now, on success, only the single passing subschema will mutate the JSON data.
Switch to Ruby 1.8 hash syntax in tests
Merge pull request #181 from jjbananas/conditional-validation-default-values

`oneOf` and `anyOf` errors where default values are present
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
Use File.read for local files
Add test for file uris with spaces and fragment
Use convert path. Load file:// schema with File.read
Also use convert_path for absolute URIs
Merge pull request #174 from RST-J/addressable

Use Addressable gem to handle URIs
Validator should accept JSON::Schema objects