[Fix #876] Deep merge hashes in configuration when overriding

Deep (recursive) merge that was removed in #347 is added back. Some special handling is added in the CollectionMethods class so that
local settings really override the default ones even though its
config parameters are deep merged. The other cop with hash config
parameters, PercentLiteralDelimiters, will also get its config deep
merged.