RFC: Quaternion rewrite/refactor

This is the first step towards resolving #963.

 - Incorporates #948. Made some efficiency related improvements to the setLookAt() method and also added a member version.
 - Continues, consolidates and homogenizes the work from #950 
 - Removes the change from #957 (thus fixing #961) based on the example set forth by libGDX
 - Makes no efforts towards #920.

Future efforts can resolve #920.