Fix various deprecation warnings from char changes
core: Change Char::encode_utf8 and encode_utf16 to return iterators

Consistent with current design guidelines, though it does result
in a performance hit, particularly for multi-byte cases.

test iter_1bytes   ... bench:       341 ns/iter (+/- 90)
test iter_4bytes   ... bench:       944 ns/iter (+/- 204)
test noiter_1bytes ... bench:       324 ns/iter (+/- 52)
test noiter_4bytes ... bench:       510 ns/iter (+/- 227)

[breaking-change]