codegen_malloc/realloc: static + simple mem alloc

- there's no reason for both to have external linkage
- use simple versions of memory allocation functions
which are returning NULL instead of longjmp-ing,
so codegen_error will be called to cleanup.
renamed mrb_exc_new3 to mrb_exc_new_str

- more descriptive name (there's no mrb_exc_new2)
- no wrapper (macro/static inline function) for
backwards compatibility because nothing besides
mruby itself seems to be calling this function:
<http://mruby-code-search.ongaeshi.me/home?query=mrb_exc_new3>
GCC: add -std=gnu99 to CFLAGS

- this change prevents issues like #1539 in the future
- Clang's default is already gnu99 but GCC's is gnu89
- mruby is C99 (+ GNU exts), not C89 (+ GNU exts)
clear ci->err after const set; revert 5b51b1; ref #1583