Define the lookup table to be used in translation
Note that, as of Lang 3.1, the key to the lookup table is converted to a
java.lang.String, while the value remains as a java.lang.CharSequence.
This is because we need the key to support hashCode and equals(Object),
allowing it to be the key for a HashMap. See LANG-882.
Translate a set of codepoints, represented by an int index into a CharSequence,
into another set of codepoints. The number of codepoints consumed must be returned,
and the only IOExceptions thrown must be from interacting with the Writer so that
the top level API may reliably ignore StringWriter IOExceptions.