char_range_at perf work

Moves multibyte code to it's own function to make char_range_at
easier to inline, and faster for single and multibyte chars.

Benchmarked reading example.json 100 times, 1.18s before, 1.08s
after.
Optimize is_utf8

This function just needs to check if the utf-8 is well formed enough
that we can iterate through it correctly.  Also, optimize for single
byte chars.