Doc update.
UTF-8 encoding updates.

- Split encoding strategies based on char length. This way, tests can access these directly and deliberately encode invalid characters to test that decoding them fails.
Split UTF-8 decode up like encode.