TextureData refactoring and mipmaps

Refactored:
- TextureData to handle Pixmap and Custom TextureType
- TextureData consumeCompressedData to consumeCustomData
- GLTexture function to uploadImageData to custom mipmap level

Added:
-MipMapTextureData which handles multiple TextureData to be uploaded to single mipmpa levels