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.
We merge :colX keys so we can move the final merge to intialization
Remove unneeded hash initialization
Merge pull request #849 from jrafanie/dont_create_so_many_hashes

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