Shadow: Use Geometry Shader for better perfs.

The 3 cascades are now rendered in a single pass, using 2D array texture and
a GS to do the dispatch ("layered rendering").
It's possible to use instancing instead but it requires the AMD_vertex_shader_layer
extension which is oddly part of opengl 4.2.
Shadow: Use 4 cascades.

Now that we use GS and textures array it's easier to add a cascade.
4 is still not optimal but I'd like to avoid cascade count inflation as
much as possible ; 4 x 1024x1024 has the bandwidth requirement of the
single 2048x2048 shadowmaps we previously had.
Bugfix for 1118

Hide countdown as soon as race ends to prevent the drawGlobalTimer() method in race_gui from checking for failed challenges.

https://sourceforge.net/apps/trac/supertuxkart/ticket/1118

Signed-off-by: Sachith Hasaranga Seneviratne <sachith500@gmail.com>
Graphics: Clean some dead code.

Still leave some shadow related code as comment, I will need later to
port cand's work on penumbra shadow.
Remove rain effect.

Rain enabled map crashes with non glsl codepath, and having a particle
effect handled separatly from others effect made it unmaintainable.
Rain must be implemented using gfx file with eventually a custom
property.
STKMesh: Force readonly materials.

We never changed materials on the fly but better safe than sorry.
Revert "STKMesh: Force readonly materials."

This reverts commit 8c5a5b9b206b3e11810eaa73c7a3afc4e570264c.
Use an openGL 3.3 compatibility context when available.
Some factorization.
Shaders: Declare penumbraH/V and shadowgen
Merge pull request #41 from sachith500/bug1118

Bugfix for 1118
Add first rudimentary way to dump profiler measurements to CSV. More work to do!
Fix linux/gcc compilation
Shadows: Softer edge and smoother cascade transitions
Merge remote-tracking branch 'upstream/master' into new_login
Removed unused variable.
Fixed merge from upstream.