Several improvements to shaderProgram, see details:
- shaderProgramSetGshInputPermutation() was added
- shaderInstanceGetUniformLocation() return type corrected
- shaderInstanceSetBool bug fixed (true/false were incorrectly mapped)
- shaderInstance now has bitmasks indicating which int/bool uniforms are
used by int/bool constants in the DVLE
- shaderProgramUse() was revamped:
- Shader unit setup/code/opdesc upload code was separated into a new
function called shaderProgramConfigure()
- shaderProgramUse() calls shaderProgramConfigure() and afterwards
uploads DVLE constants
- GPU wrappers that perform uniform management will want to use
shaderProgramConfigure() instead of shaderProgramUse() and later
read the shaderInstance uniform usage bitmasks to set the constants.