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