Generalized the type of setUniform.

Now based on the AsUniform class which has instances for all the OpenGL
types that have Uniform instances.

Addresses #13