Reached a compromise with doxygen and github.

Doxygen and github do not play well together. Doxygen handles .inl
files properly github does not. Github handles equivalent .tcc files
properly. Doxygen does not. Damned if you do, damned if you don't.

If we want syntax highlighting on inline files in github, then we must
use .tcc files. That's a hard requirement unless we can get .inl files
added to github's syntax highlighter config file for c++ (unlikely).
Unless doxygen has a competeing hard requirement, then we use .tcc. It
does not, but it does have some soft issues here.

Doxygen does not treat .tcc like .inl. In particular, it unconditionally
documents members of undocumented namespaces in a .tcc file, but behaves
correctly w/ a .inl file. I suspect this is a bug, but it's triggered.

Most of the internal structs in Utf8Encoding.tcc were already documented
using doxygen comment blocks. They were only documented for consistency
- not to be published. It's gotten to the point where reading doxygen
comment blocks are more useful than the html and regular comment
blocks! So, even internal stuff that shouldn't be published is documented
doxygen style.

Doxygen is publishing documentation from within a Detail namespace. Detail
is not documented, so doxygen should ignore it. It is not and it gives
warnings about partially documented classes.

The compromise is, everything in Utf8Encoding.tcc is documented to prevent
warnings, but marked as internal to prevent it from being published.