UTF-8 updates.

- Added explicit functions to get char size from either a code point or lead code unit.
- Decode and Encode are now implemented in terms of CharSize().
- Partially decoding a character will no longer partially move the char pointer.
- Changed layout. Encode stuff is with encode. Decode stuff is with decode. The Details::Utf8 namespace is now split and localized.
- Doc updates.