Abstract the in memory representation of an image and implement more met...

...hods on Image

This should make implementing future image processing algorithms easier (hopefully).

I hope to change encoders to operate over PixelBuf instead over &[u8]