Add API `mrb_atexit()`.
`mrb_final_mrbgems` will be called as mrb_state atexit function.
Maybe useful in #1844.
Change range_check before mrb_obj_alloc.
Use boolean macro in kernel.c
Check mrbc_context is null
direct invocation of instance_eval
Merge pull request #2301 from mimaki/fix-load-mrb-segv

mrb_load_irep_file() caused SEGV
Reduce filename table creation in irep dumping to once.
Reduce children filenames listing.
It is executed per each debug filenames in irep to same ireps(children).
Module#initialize set created object
for block argument
Class.new do not call `class_eval'
and set self for block argument
Class.new add test case
Merge pull request #2286 from suzukaze/refactor-kernel

Use boolean macro in kernel.c
remove unnecessary assignment; ref #2301
git push origin masterMerge branch 'take-cheeze-refactor_dump'
Merge pull request #2282 from yui-knk/check-before-malloc

Change range_check before mrb_obj_alloc.
Merge branch 'master' of github.com:mruby/mruby
Merge pull request #2303 from ksss/module-initialize

Module#initialize set created object for block argument
Merge pull request #2304 from ksss/class-new

Class.new do not call `class_eval'
allocate object after mrb_get_args()
call Class#initialize from Class.new; ref ISO 15.2.3.3.1