Changes to codecs

Create base interfaces for encoders, decoders, and classes that can do both. Use haxe.io.Input and haxe.io.Bytes, with specializations for strings in CodecTools.hx for use with using.