Use MRB_ENV_STACK_LEN instead of accessing `flags` directly to get REnv's stack length.
Add macro MRB_ENV_UNSHARE_STACK instead of assigning -1 directly.
Use MRB_ENV_STACK_SHARED_P to check `cioff` field of REnv.
Merge pull request #1986 from take-cheeze/proc_macro

REnv macros.
Hash to preserve order as Ruby1.9 does
move Hash#inspect implementation to mrblib/hash.rb
move Array#inspect implementation to mrblib/array.rb
function expansion in hash.c
implement Hash#== and eql? in Ruby
should adjust hash value order at deletion
Hash#keys to update memory region directly
fix else indentation style
simpler escape handling in ?c strings
handle CR before LF; close #1781