[core] Make everything Unicode in the core

This will probably break a few things, including the codepoints module.
It also likely means that people still using weird formats like the
assorted weird ISO ones might have unexpected behavior. Too bad. Call me
a zealot but UTF-8 is the closest thing we have, or possibly could have,
to a single standard that actually works for character encoding. It is
the One True Encoding.

This closes issue #239 but opens issue #240