remove unused `mrb_str_body`
invalid base shouldn't silently fail

Revert 44a5809224e819bf8bcca4ae9a8c5ea5bf4cefd7 and check range of
`base` with `mrb_assert`.
It actually can only be either 2, 8, 10 or 16 (and never 0), unless
mruby sources are modified. But I don't see a reason to impose further
limits.
Use `mrb_parse_nstring` instead in eval.
Add `SyntaxError` test and don't print compilation error to stderr in eval.
Merge pull request #2454 from cremno/remove-mrb_str_body

remove unused `mrb_str_body`
Merge pull request #2455 from cremno/readint_mrb_int-check-base

invalid base shouldn't silently fail
Merge pull request #2456 from take-cheeze/refactor_eval

Refactor eval.
check `mrb_open` return value
rewrite stripping

Previous version ignored some errors, and didn't free memory and close files.
Now no memory will be dynamically allocated to simplify error handling.

This commit also fixes a wrong check:

  files[i] = fopen(argv[i], "wb");
  if (!ireps[i]) {

Improve error messages a bit and add missing newline to one.
update expected error message in bintest
coding style adjustments
initialize `args` in `parse_args`
Merge pull request #2457 from cremno/mruby-strip-rewrite

mruby-bin-strip rewrite