Merge uniforms into a single uniform array

Ok new attempt :) This reduces the number of glUniform on platforms without uniform buffer support (GLES2/WebGL) down to one by putting all shader parameters into one vec4 array.