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.
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