factored out GetUniform() and SetUniform() to be untyped in C++ - they just take the GLenum type as an argument