[CHEF-4101] DeepMerge - support overwriting hash values with nil

http://tickets.opscode.com/browse/CHEF-4101

The current deep merge algorithm does not provide a nice way to clear a value from a hash. I suggest to support overwrite hash values with nil - currently the old value is not changed. If the value of a key should not changed, this key should be removed, which results in the old behavior.

Old implementation:
```ruby
{ :x => { y: => "1"} }
+
{ :x => nil }
=
{ :x => { y: => "1"} }
```
Suggested implementation:
```ruby
{ :x => { y: => "1"} }
+
{ :x => nil }
=
{ :x => nil }
```