Typesafe enums
* Wrapped many GL enums to gw namespace
* Compile-time fail for wrong enum type
* Added new enums to all typed functions