bug fix for encodings other than UTF-8

In Ruby a UTF-8 string "x" and a UTF-16 string "x" are not equal,
even when they consist of identical sequence of Unicode code points.
This cases problems on parser's token equality checks.  We need to
canonicalize the parser token in some way so here we take UTF-8.

A JSON-text must be a valid Unicode sequence so this must be OK.
reroute BigDecimal issue

Seems BigDecimal does not understand UTF-32 and such.

Luckily we can assume all chars coming here are strictly compatible
to what we call US_ASCII, so let's just convert them.
also avoid encoding-mismatched string comparison
tests for various encodings
:scream: typo
string dumper should dump to UTF-8, not others.

We are not interested in generating UTF-16/32 JSONs.
enough.  no testing other libs.