Add reader and decoder.
Add writer. Change reader tests to use writer.
Disable decoder tests until encoder is written.
Add Encoder. Rewrite decoder tests and allow specifing a ByteOrder