Refactor CreateCompatible() texture methods to a seperate type

The texture types are wrappers for OpenGL textures, nothing more.
Methods for creating a texture compatible to a given bitmap have nothing to do with the texture itself.
Add a basic skybox rendering example with a cube map texture