[WIP] Avoid creating unneeded hashes by using Hash#merge! instead of #merge.

The "row" hash created within each of these methods is modified and returned.
The intermediate hashes are unneeded since no one else can accidentally modify them.
Yes @tenderlove good point.  I was going to do the mass merge -> merge! and see what else I can do to collapse this code further without making it a big PR.  Lots of very related work in many methods... I'm trying not to bite off more than I can chew.