Code point updates.

- Moved functionality in Noncharacter.* into CodePoints.*.
- Defined, implemented, and documented a bunch of code point values and ranges in CodePoints.*.
Doc updates, changed a param to a ref, realized we need to deal w/ surrogates.
UTF-8: Encoding and decoding surrogates correctly fails.
Bashed char length LUT in UTF-8 decode.

It turns out that after changing the decode algo, using a table vs not using a table to calc the length of a non-ASCII is a wash. The function is longer, but not a lot, and we don't have a LUT for length. We also don't have to remap the lead byte into a wonky table index. This is better.
Doc mods for decode.