Implement gamma-correct rendering

This is an attempt to implement gamma-correct rendering in glsl.  No
JS-level changes are required, the scene graph is not touched.

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.

Signed-off-by: Simon Thum <simon.thum@igd.fraunhofer.de>
hack gamma support into cadcading shadows

This is not an ideal solution, please see the source comments for
detail.

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