Added uniforms a concept to provide global variables/input to shaders. Introduced shader-type dependant compilation. Removed PI as built-in constant. Changes broke API backwards compatibility