Implement gamma-correct rendering

This is implementing gamma-correct rendering in dynamic glsl shaders.
The scene graph is not touched execpt for an attribute controlling
the aplication of this feature for backwards compatibility.

The strategy is borrowed from blender:

http://www.blender.org/development/release-logs/blender-256-beta/color-management/

i.e. color image textures and material color is treated as gamma
encoded. There is an opt-out for scenes which have been built around
the non-correcting implemetation and are sensitive to such
changes. These is no user-facing knob for that yet, though.

More inspiration was drawn from "The importance of being linear",
NVidia's GPU Gems 3, Ch. 24, available online.

The application to shadows is not part of this commit.

v2: Restrain gamma computation to the fragment shader. This fixes an
    issue seen in the barcelona walk-through scene.

v3: Control gamma assumption from the Environment node. Also offer
    gamma = 2 and 1 for speed and compatibility, respectively.
    Includes example.

v4: Includes tutorial. Untested, may not be well-formed
    restructuredtext.

Signed-off-by: Simon Thum <simon.thum@igd.fraunhofer.de>
gamma support for cascading drop shadows

This cannot yet be controlled through the environmment,
but that should be easy to add.

Signed-off-by: Simon Thum <simon.thum@igd.fraunhofer.de>
remove hard-coded ambient lighting

This is not specified by X3D.

Signed-off-by: Simon Thum <simon.thum@igd.fraunhofer.de>