Deep merge dereferenced keys

This is a quick and dirty solution to a problem I had when overriding values in our schema. The problem it's trying to solve was this:

Given the `links` snippet:
```json
      "targetSchema": {
        "properties": {
          "operation": {
            "$ref": "/schemata/operation",
            "properties": {
              "id": {
                "$ref": "/schemata/operation#/definitions/id"
              }
            }
          }
        }
      }
```

the resulting documentation would not include both the dereferenced object's properties and the override properties. Instead the override properties would replace those from the dereferenced object.

This is a somewhat naive approach and I'd be open to feedback on how to improve it.
I couldn't see how this was affected by my change, but there was a test that was failing for me locally. I also wasn't sure how this was working before, unless somewhere we're creating hash objects that have an empty string as the default value.