[CHEF-4918] Don't destructively merge subhashes in hash_only_merge!

hash_only_merge dups its inputs and then passes it to
hash_only_merge!.  Unfortunately, dup does not make a deep copy,
leading hash_only_merge to mutate deeply nested structures.