clearn up warning in hash.c

/home/fleuria/code/mruby/src/hash.c:159:1: warning: ‘mrb_hash_dp`defined but not used [-Wunused-function]
 mrb_hash_dup(mrb_state *mrb, mrb_value hash)
     ^

this commit defines Hash#dup to take advantage of mrb_hash_dup, however
it seems that Hash#dup is not in ISO standard.
add test for Hash#dup
Merge pull request #1708 from Fleurer/cleanup-warning-hash-dup

cleanup warnings in hash.c
Merge pull request #1707 from Fleurer/issue1706

keep stack with nlocals instead of nregs; fix #1706
Give the type 'void' to functions have no argument.

According to the C standard,
it is desirable to give the type 'void'
to functions have no argument.
Merge pull request #1709 from cubicdaiya/issues/nonvoid

Give the type 'void' to functions have no argument.
modify mrb_to_str() in order to display big float number
normalize NaN after division that may generate NaN; fix #1712
Merge pull request #1710 from takkaw/flo_to_str

modify mrb_to_str() in order to display big float number
fix mrb_flo_to_str() exponent problem
Merge pull request #1714 from h2so5/f2s

fix mrb_flo_to_str() exponent problem
fdigit may be negative due to error if mrb_float is 32bit (e.g. 10**36 on 32bit arch); ref #1713 #1714
use powf() instead of pow() on MRB_USE_FLOAT
small refactoring; direct return
remove max_digit from mrb_flo_to_str()
define FLO_EPSILON depends on float/double
remove trailing zeros from float string representation
use double instead of mrb_float (that may be single precision float) to reduce errors
more mrb_flo_to_str fixes

- remove float check (take mrb_float instead of mrb_value)
- support -0.0
- fix range error if log10 is called when n == 0.0
- MSVC older than 2013: add signbit macro (for double)
iv_size (non-seglist): return 0 if t is NULL