Refactoring and various changes

The purpose of this commit is to clean code to make it more
comprehensible as well as make some smaller improvements. Nothing big,
but needed none the less.
* Refactored SSAO into it's own class.
* Rewrote reconstruction of position from depth to an alternative
solution.
* GBuffer stores normals in view space (fixed where needed after
change).
* Full screen effects are now rendered using a full screen triangle that
doesn't require any vertex buffer and so on. Kinda sweet actually.
* Refactored GBuffer.
* Cleaned up dead code and comments, fixed some unused shader variables
and so on.