Many updates.

This commit is the one before further optimization.
1. Added some documentation about event system for GUI (gui_event.dia)
2. Made Engine class variables: "input" , "scene", and "gui" as local
fields instead of them being static members of their classess
some fixes in this class also involved
3. Commented settings class
4. Changed the GUI model so that attachment to gui is done by adding
elements. This is now the correct linking mechanism between any
component at any depth and a GUI that sits above the top root component. 
This involved - altering "setParent" method and creating "setGui" method
which walks recursively the remaining hierarchy of components in case of
Composite element.
5. The GUI now dispatches events "handleMouseButton" and
"handleMouseMove" to its children providing the current mouse position
on the screen. 
6. Fixed and commented text class. 
7. Fixed caret functionality for text input
8. Fixed Vector2::add method 
9. Changed how the culling is handled by the scene. Node::getAllMeshes
is now obsolete.
10. Moved frustum to Camera from Scene.
11. Updated tests to fit the changes.