Remove io::(read|write)_[blhn]e functions.

They're not really useful and don't serve much purpose, so I'm just
removing them to save the time of having to worry about how they work.
Add spaces around namespace defs.
Add utf8.cc for utf8::octets_for_code

Mainly used to determine whether a code can be represented as a well-
formed UTF-8 byte sequence, but also to simplify other code.
If the code read isn't well-formed, return invalid.
Use octets_for_code instead of checking ranges manually.
Simplify put_code a bit.

Moves a few things into constexpr functions so the ops array can just
be an array of masks for the number of octets required to encode the
code as a UTF-8 byte sequence.