Redesign codec interface, kill off TransImageGetter

Simplify the interface to the codecs by giving them more direct access to the pixel buffers. This avoids a lot of extra wrapper classes that just makes things difficult to understand.

As part of this the TransImageGetter and PixelTransformer classes are lost in favour of having PixelFormat do conversions. This is also to make things easier to understand as you do not have to worry about setting up conversion objects and keeping track of those.

Note that performance for non-888 formats is decreased with these changes. If that turns out to be a significant issue, then we can revisit further optimisations.