Proper inheritance when merging references and inline

Items now get referenced sub-properties merged:

    refDef: &reference
        subitem:
            refUnique: true
            shared: "Reference value"

    item:
        <<: *reference
        subitem:
            itemUnique: true
            shared: "Item value"

OLD RESULT:

    item:
        subitem:
            itemUnique: true
            shared: "Item value"

NEW RESULT

    item:
        subitem:
            itemUnique: true
            shared: "Item value"
            refUnique: true


Inheritance is reversed when reference is pulled-in after all the elements:

    item:
        <<: *reference
        subitem:
            itemUnique: true
            shared: "Item value"

NEW RESULT

    item:
        subitem:
            itemUnique: true
            shared: "Reference value"
            refUnique: true


Inline definitions will pick-up the same behavior.