Changed hash inheritance to clone source object 

... Instead of re-using it, so that overrides in target don't affect values in source.

Previously, the following YAML string:
```yaml
source: &source
    foo: bar
target:
    <<: *source
    foo: qux
```
would parse to
```
{
  "source": { "foo": "qux" },
  "target": { "foo": "qux" }
}
```
instead of expected
```
{
  "source": { "foo": "bar" },
  "target": { "foo": "qux" }
}
```