Remove duplicated mrb_print_backtrace() declaration

It is declared in mruby.h.
Merge pull request #2597 from kou/remove-duplicated-declaration

Remove duplicated mrb_print_backtrace() declaration
fixed. closures scope in eval(string)
target_class should not be TT_ICLASS in instance_eval(string); ref #1152
Merge pull request #2598 from SatoshiOdawara/fix_lv_scope_eval

fixed. closures scope in eval(string)
Merge pull request #2599 from SatoshiOdawara/fix_target_class_in_instance_eval

target_class should not be TT_ICLASS in instance_eval(string); ref #1152
O(1) mrb_sym2name_len(); close #2591

instead of adding sym->name hash table, linear symbol table is added, and reduced name->sym hash table size.
remove unnecessary trailing comma to remove pre C99 declaration error with -Wdeclaration-after-statement
mrb_sym2name_len() should initialize lenp even when proper symbol does not exist
mrbconf.h option MRB_USE_ETEXT_EDATA to reduce memory.

on platforms with _etext and _edata, mruby can distinguish string literals so that it avoids memory allocation to copy them.
for example, on my Linux box (x86 32bit), memory consumed by mrbtest decreased from 8,168,203 to 8,078,848 (reduced 88KB).
Merge https://github.com/mruby/mruby into portable
Enable method inline (This is very very buggy)