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.