allocate `history_path` dynamically

`PATH_MAX` doesn't have to be defined and if it is, then its value is
usually incorrect (possible buffer overflow).
Use `malloc` and `snprintf` instead to prevent this.

https://www.gnu.org/software/hurd/community/gsoc/project_ideas/maxpath.html
call `mrb_malloc_simple` instead of `malloc`
Add field `allocf_ud` to replace current `ud`.
Since some use it as `mrb_state` associated user data.
add Module#module_function
Print backtrace of crashed test in verbose mode.
Merge pull request #2480 from take-cheeze/test_backtrace

Print backtrace of crashed test in verbose mode.
Move word boxing structs to "mruby/boxing_word.h".
Merge pull request #2481 from take-cheeze/move_word_box_struct

Move word boxing structs to "mruby/boxing_word.h".
since #1441, NaN boxing with 64bit pointer works; close #2476
Use MRB_TT_EXCEPTION in exception object.
exception in instance_eval should not exit mrb_run; fix #2483
restore mrb_get_args() in f_instance_eval to check arguments type
Merge pull request #2482 from take-cheeze/exc_tt

Use MRB_TT_EXCEPTION in exception object.
check if block is given in eval_under(); fix #2486
Fix memory leak for test driver
Merge pull request #2488 from ksss/leak-test

Fix memory leak for test driver
Silence "unused parameter" warnings in C++

This has been done already, but the fixes were accidentally
removed in 249f05e7d70761823ef07a990276f9200e8b3302.
Merge pull request #2489 from Ancurio/silence_cpp_warn

Silence "unused parameter" warnings in C++
Merge pull request #2477 from take-cheeze/allocf_ud

Add field `allocf_ud` to replace current `ud`.
Merge pull request #2478 from dreamedge/add_module_function

add Module#module_function