Texture overhaul

Renamed texture classes. Added Texture2DParams and CubeMapParams, to
allow passing in texture parameters to texture constructor. Added
support for automatic mipmap generation.