Rewritten using NIO.

Additionally, Dictionary#userDictionary now contains raw byte data, so that an individual word can be later changed by changing the encoding of the DecodedToken.