Added quaternion rotation to transforms

* Created Quaternion class
* implemented quaternion rotation in Transforms
* fixed aspect ratio update of the camera on window resize
* minor optimizations