Explain the code in Node::intersect().

More specifically, the fix that implements the "bonus" from
Homework 5/Medimum/Task1 is explained in more detail here.
Beautification and add comments in shading.cpp
Add scene reader and random_generator. Work-in-progress right now.
Update a GPL header.
Scene reader implemented. The old scene is in data/lecture7.trinity.

A scene reader is added, which parses a textual description of the
scene. The important changes for almost all raytracer objects is that
they are no longer created manually, but by the Scene implementation.
All scene objects are kept in respective arrays (scene.geometries,
scene.nodes, etc) and are properly destroyed on exit. Also, all scene
elements should add a method, fillProperties(), where they describe
what properties they expose to the scene parser, what their type is,
and (if applicable), what the allowed range of the parameter values
is.
Add scene.(cpp|h) and random_generator.(cpp|h) to the project.
Fix a small memory leak in Mesh.

We need to delete the bounding sphere of the mesh in ~Mesh.
Add scenes that mimic what initializeScene() did in lectures 4 and 5.
Fix copy-paste typo.
Add a scene for lecture6 as well.

It is minimally different from 'lecture7.trinity', but here you have it anyways.
Apply sRGB decompression on input BitmapTextures

This was done previously in the BitmapTexture constructor, but the
changes related to the scene parser disabled this code.
The parameter 'assumedGamma' controls what decompression is to be
applied.
Add copy constructors to Bitmap.
Pre-lecture8 commit: some .OBJ files and textures.
Merge branch 'master' of https://github.com/anrieff/trinity