Encode no longer checks stream vs nullptr. This isn't useful for iterators.
Updated CMakeLists.txt.

- Changed define from _NDEBUG to NDEBUG.
- Added flags for cmake's RelWithDebInfo build type.
UTF-8 updates.

After some reading, reimplemented decode.
- Compiles to about 1/3 the size, makes no calls, but uses a < 128B LUT and small struct.
- Overlong encodings are automatically rejected.
-

- Added c asserts.
- Bashed some unused methods to clean up the api.
- Added string decode. It optimizes the case where files are largely ASCII.
- Changed Encode's params to more closely match Decode.

I haven't updated the docs for these yet. The search method signatures should probably be made to more closely match encode/decode.