Use transform_values to build hash_rows
Use transform_values to build hash_rows

This commit changes hash_rows to build the first row as it did before,
and then to use transform_values to build subsequent rows, using the
first as a template.

In Ruby 2.4+ (first version to include transform_values) this is
marginally faster because the hash will never be realloc'd and the hash
update logic is probably slightly simpler than add.

In Ruby 2.7+ this is a fair bit faster because transform_values is able
to run without hashing the keys and only iterates over the values list.

In the case that we only have one row this is only one extra lvar
set/read and the condition.

Vasfed/rails,EmmaB/rails-1,yahonda/rails,EmmaB/rails-1,lcreid/rails,esparta/rails,iainbeeston/rails,eileencodes/rails,Envek/rails,mechanicles/rails,tgxworld/rails,prathamesh-sonpatki/rails,Vasfed/rails,BlakeWilliams/rails,repinel/rails,Stellenticket/rails,iainbeeston/rails,bogdanvlviv/rails,lcreid/rails,schuetzm/rails,Stellenticket/rails,fabianoleittes/rails,kmcphillips/rails,gauravtiwari/rails,yahonda/rails,gauravtiwari/rails,repinel/rails,BlakeWilliams/rails,vipulnsward/rails,vipulnsward/rails,jeremy/rails,MSP-Greg/rails,rafaelfranca/omg-rails,tgxworld/rails,MSP-Greg/rails,fabianoleittes/rails,yhirano55/rails,georgeclaghorn/rails,Edouard-chin/rails,Erol/rails,mechanicles/rails,starknx/rails,kddeisz/rails,palkan/rails,jeremy/rails,palkan/rails,kmcphillips/rails,betesh/rails,starknx/rails,georgeclaghorn/rails,rails/rails,Envek/rails,rafaelfranca/omg-rails,rafaelfranca/omg-rails,repinel/rails,yahonda/rails,kddeisz/rails,Edouard-chin/rails,prathamesh-sonpatki/rails,joonyou/rails,BlakeWilliams/rails,joonyou/rails,eileencodes/rails,lcreid/rails,tjschuck/rails,fabianoleittes/rails,Envek/rails,repinel/rails,Erol/rails,tjschuck/rails,kmcphillips/rails,Erol/rails,EmmaB/rails-1,MSP-Greg/rails,schuetzm/rails,tgxworld/rails,esparta/rails,kmcphillips/rails,Erol/rails,mechanicles/rails,bogdanvlviv/rails,eileencodes/rails,Edouard-chin/rails,yhirano55/rails,bogdanvlviv/rails,Stellenticket/rails,tjschuck/rails,yhirano55/rails,esparta/rails,yawboakye/rails,betesh/rails,vipulnsward/rails,rails/rails,schuetzm/rails,jeremy/rails,lcreid/rails,iainbeeston/rails,betesh/rails,yalab/rails,prathamesh-sonpatki/rails,eileencodes/rails,Envek/rails,jeremy/rails,yhirano55/rails,yahonda/rails,yalab/rails,kddeisz/rails,esparta/rails,yawboakye/rails,bogdanvlviv/rails,yawboakye/rails,iainbeeston/rails,BlakeWilliams/rails,kddeisz/rails,yalab/rails,gauravtiwari/rails,rails/rails,betesh/rails,palkan/rails,tjschuck/rails,starknx/rails,yalab/rails,Edouard-chin/rails,palkan/rails,fabianoleittes/rails,mechanicles/rails,joonyou/rails,rails/rails,tgxworld/rails,georgeclaghorn/rails,joonyou/rails,vipulnsward/rails,Vasfed/rails,schuetzm/rails,MSP-Greg/rails,Stellenticket/rails,prathamesh-sonpatki/rails,yawboakye/rails,georgeclaghorn/rails,Vasfed/rails