replace a deprecated use of setting __proto__
remove __proto__ from EncodedData and family

EncodedData was setting "converter" and "_encoding" by setting them on the
prototype of the object. This was probably done to enable overriding these
functions. However, overriding was never actually used anywhere, and setting
the __proto__ is deprecated. So I have remove all instances of setting
__proto__ for EncodedData-ish classes, and instead just set "convert" and
"_encoding" on the object directly.
remove replace deprecated setting of __proto__ in error.js
add tests to EncodedData and fix hex conversion bug

...making sure the new changes to __proto__ are working correctly.
Merge pull request #432 from ryanxcharles/feature/proto

Correct deprecated setting of __proto__