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" }
}
```
Granted, `JSON.parse(JSON.stringify(thing_to_be_cloned))` is potentially not terribly performant, but it's a quick and dirty way of implementing a deep clone without having to write a lot of code and tests for that code.