While namespaces act for hierarchy, modules are something like "tags" -
usable when you want to check related classes of e.g. CubeMapTexture.
Not sure how to name module for Math and Physics namespaces and
Contexts/Trade, though.
* Renamed Type enum to Target to be consistent with OpenGL naming
* Strongly typed enums
* Ability to specify different type when binding/setting data
* Added missing buffer targets
* Removed VertexPointer typedef, as size_t is somewhere 64bit and
OpenGL doesn't have corresponding data type. Using unsigned int
everywhere instead, to avoid confusion.
* Removed Face structure altogether, using vertex indices directly.
* Greatly reduced size of unit tests, also thanks to C++11
std::initializer_list feature.