Defined and documented pseudoconcept for encodings.
Fixed include paths in test.
Cleanup pass on Encoding.hpp.

- Made code unit vs. code point vs. character consistent.
- Doc update.
Defined an arbitrary 21-bit code point in Test.hpp.
Added unchecked encoder for testing.

To test that we don't decode invalid code points, we need a way to
programmatically encode invalid code points. Since CEncoding explicitly
disallows this, the test lib has its own SUncheckedEncoder, specialized
on each encoding.
Added UTF-8 specialization.
Added UTF-8-specific unit tests.
Added encoding-agnostic unit tests.