add symbol table overflow check

Since raising an error might intern a few new strings, some symbols need
to be reserved. 8 should be sufficient.

If the real limit has been reached, mrb_bug() is called.
Remove unused macro.

OutOfRange() is no longer used.
Merge pull request #2573 from cubicdaiya/issues/remove_unused_macro

Remove unused macro.
allow no_optimize esp. for debugger
more OP_MOVE swap detection in peephole optimization
add sym_validate_len() to validate symbol length

This also fixes an off-by-one in mrb_check_intern().
use RITE_LV_NULL_MARK for better readability

The comment didn't say why the length is reserved.
Using RITE_LV_NULL_MARK makes things a bit clearer.
delete obsolete macros (mrb_basic + mrb_object)

Over a year ago is not "soon" anymore. See:
88483fad0036e5cb023940f7c6d18006517fa731
243669308dfd10c8444c2992a883e165b9209941
Merge pull request #2576 from cremno/correctly-validate-symbol-length

correctly validate symbol length
Merge pull request #2577 from cremno/remove-obsolete-macros

delete obsolete macros (mrb_basic + mrb_object)
remove unnecessary MRB_API from mrb_num_div(); close #2578
remove ci->nreg initialization from cipush()
attr_reader and attr_writer should return nil
move mrb_proc_new_cfunc_with_env() to the core
refactor valid instance variable name check
implement attr_reader and attr_writer in C; use cfunc closure to speed-up
Refactor obj_is_instance_of() in kernel.c
Refactor mrb_obj_is_kind_of_m() in kernel.c
Merge pull request #2580 from suzukaze/refactor-kernel.c

Refactor kernel.c
Use mrb_str_cat_lit() instead of mrb_str_cat_cstr() for string-literals.