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.
Use mrb_str_cat_lit() instead of mrb_str_cat_cstr() for string-literals.
Merge pull request #2581 from cubicdaiya/issues/use_lit

Use mrb_str_cat_lit() instead of mrb_str_cat_cstr() for string-literals.
save and restore arena index to prevent arena overflow.
Merge pull request #2582 from iij/pr-attr-accessor-save-arena

save and restore arena index to prevent arena overflow.
get rid of shadowing variables

Mostly by renaming the shadowing variable.
If a shadowing variable was deleted,
the shadowed one can be used instead.
Merge pull request #2583 from cremno/get-rid-of-shadowing-variables

get rid of shadowing variables
rename a local variable current_node -> nodetype; ref #2583
avoid iseq allocation from static irep binary. it reduces 424KB allocation for mrbtest
wrong iseq conversion flag
instance variable name validation based on <ctype.h>; fix #2584
get rid of shadowing variables (mrbgems)

Mostly renaming, except that the definition of struct accessor methods
is now done in a new function.
fix strict aliasing rule violation
Merge pull request #2586 from cremno/fix-strict-aliasing-rule-violation

fix strict aliasing rule violation
Merge pull request #2585 from cremno/get-rid-of-shadowing-variables-mrbgems

get rid of shadowing variables (mrbgems)
refactor MACRO to avoid local variable name conflict; ref #2585
use uint16_t instead of short; ref #2568
Merge branch 'cremno-add-symbol-table-overflow-check'
add some MRB_API to function prototypes
condition refactoring in load.c