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.