Push encoding specific formats into the encoders and decoders

Keep the generic stream classes clean and general.
12 files changed