Hash subtraction (delete_merge!)

methods to remove a hash from another hash
- works with deeply nested hash
- works with hash containing arrays

```ruby
{a: {b:"c"}} - {:a=>{:b=>"c"}}                      # => {}
{a: [{c:"d"},{b:"c"}]} - {:a => [{c:"d"}, {b:"d"}]} # => {:a=>[{:b=>"c"}]}
```