refactor mrb_hash_shift, num_pow, flo_eq, flo_finite_p method
Merge pull request #2531 from kkkkkt/refactor-numeric-hash-method

refactor mrb_hash_shift, num_pow, flo_eq, flo_finite_p method
remove unnecessary mrb_float casting; ref #2531
add write barrier when iv is copied
need to add space for receiver to proc env; fix #2525
dycoon's modification.

This reverts commit a9d19c859a979bd364717f5118ebcc6af82866cb.