Add C4Draw::GetClipRect()

This will allow to avoid some code duplication when computing the coordinate
transform from fragment coordinates to ambient and light texture coordinates.
Compute ambient texture coordinate based on fragment coordinate

This will allow to use the same shader slice also for the sprite and mesh
shaders.
Improve GL error outputs
C4Shader: Deactivate shader units in reverse order

This makes sure that GL_TEXTURE0 is the active texture unit
after the shader call. Some parts of the engine such as the
particle system rely on that.
Add some more variants of the uniform setters
Use the new shader system for rendering sprites

This now also avoids the use of conditionals in shaders by using different
shaders instead.