Update material storage model & restructure intersection acceleration methods.

The materials are now stored linearly in a vector inside the scene class.
Now they can be read safely from HDD to memory without any patching or serialization. They are identified by ids(indexes).

Gave up on the book scene design. It is based heavily on polymorphism in high-performance areas and is designed exclusively on the OOP priniciples. Less flexible structure is implemented in this commit.
Merge branch 'master' into scene
The camera to world matrix construction code is now using glm and is working property.
Merge branch 'scene'