Some characters are actually surrogate codepoints defined for
use in UTF-16. We need to signal an invalid character if we detect
them when encoding a sequence of Chars into Word8s because they
won't give valid Unicode.

We may also need to signal an invalid character if we detect them
when encoding a sequence of Chars into Word8s because the
RoundtripFailure mode creates these to round-trip bytes through
our internal UTF-16 encoding.