`oneOf` and `anyOf` errors where default values are present

Using `anyOf` or `oneOf` shouldn’t fill JSON object with defaults of non-matching subschemas.

Prior to this change, a JSON object validating against `anyOf` or `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.

This pull request makes changes so that:

**On Success**
For `anyOf`, the defaults of the first matching subschema persist after returning from the call to `validate`.
For `oneOf`, the defaults of the only matching subschema persist after returning from the call to `validate`.

(It's not obvious what should happen for `allOf`. So we have not attempted to change behaviour here.)

**On Failure**
We set the JSON data back to the original data.


Ah I see my mistake. I overlooked strict, which makes the first schema in the first test to not validate. In this respect I agree that this is fine.
My hypothetical question is, whether the following test should hold:
```ruby
def test_default_with_anyof_no_strict
  schema = {
    "anyOf" => [
      {
        "type" => "object",
        "properties" => {
          "foo" => {
            "enum" => ["view", "search"],
            "default" => "view"
          }
        }
      },
      {
        "type" => "object",
        "properties" => {
          "bar" => {
            "type" => "string",
            "default" => "baz"
          }
        }
      }
    ]
  }
  data = {}
  assert(JSON::Validator.validate(schema, data, :insert_defaults => true))
  assert(data['foo'] == 'view')
  assert(data['bar'] == 'baz')
end
```