Create a wrapper class for UTF-8 conversion

Every time a String was encoded into or decoded from a ByteBuffer a new
encoder or decoder was created. Instantiating an encoder then encoding
the string in a try/catch block is very verbose.

The class UTF8 was added to make encoding and decoding more terse and
possibly more efficient.