Clean up the TextureDecoder and some related things

Reduce the amount of shared code we have a little bit, and also start cleaning up the interfaces.

I eventually want to see if I can put our texture decoder somewhere like in Core/ or Common/ so we can use it for reading out memory card and banner images, too.
Because its code cleanup.... in a cleanup branch, an easy fix and remove the only instance in the whole project where it's used.