Define char::ReplacementChar as U+FFFD
First pass at encoding support

Create a new module `encoding` that defines the Encoding trait and
related conditions.

Implement UTF-16 as a sample encoding.