Refactored texture.py to use same mechanisms as buffer.py
API has remained unchanged, except set_storage -> set_shape
Added tests for Texture classes
Better support for mipmapping.
More tests for GLObject compliance.