Ported Hash#deep_merge and Hash#except from ActiveSupport