Simplified how UTF-8 decode handles advancing stream on failure.
Large cleanup pass.

- Param names simplified.
- Param names ordered like stl for in/out.
- Doc updates.
Massive cleanup pass.

- One last oscillation. The reason I exposed the encode/decode impl details was solely for encoding invalid sequences for test. The unchecked encode algo isn't very difficult. From an API design perspective, that stuff needs to not be there. So, the impl is back to Details::Utf8. The test does its own encoding.
- FindEndOfFinalCharacter was finding the beginning of the final character. Now it finds the end.
- Moved search functions above encode/decode.
- Lots of doc updates.