improved gladus::texture image loading

Created a texture_image, texture_subimage and texture_data struct that contains information on the texture image's MIP-level, size, offset and internal format, as well as the image data format, type, alignment and pointer. The classes are easily constructed.

The gladus::texture class now only has the functions image1d, image2d and image3d, each taking either a texture_image or texture_subimage, and a texture_data to specify what is to be loaded.