Do more work in the ParseTextureUnitName() function to reduce duplicated code.
Switch forward light calculations back to world space instead of tangent space to avoid light attenuation bugs when TBN matrix is not orthogonal. Shader code becomes simpler and more similar between forward and deferred, and number of vertex shader variations is reduced, but disadvantage is a more complex pixel shader which requires disabling expensive features on SM2.0 to avoid exceeding the arithmetic instruction limit. Fix cube mapped point light displaying the cube map upside down. Closes #276.