don't use str{cpy,cat} in mruby and mrbc

The length of each string is known. It should be used.
parse.y: don't use strcat
class.c and numeric.c: fixed MSVC warnings
allow turning off GC generational mode by default by MRB_GC_TURN_OFF_GENERATIONAL; #1447
finish half-baked GC cycle before starting full GC; #1447