Implemented the rotation matrix to quaternion constructor for
Quaternion.

Signed-off-by: Jordan Deyton <deytonjh@ornl.gov>
Added a method for generating a quaternion to represent the rotation
between two given vectors.
Refactored Quaternion a bit. Complicated constructors (like creating a
quaternion from a rotation matrix) are now static helper methods. This
cleans up the code a bit and may be useful to help users understand that
the helper methods aren't computationally similar to the standard
constructors.

I figured I would push this now since the setOrientation() method on the
FlyCamera seems to work well, just in case I lose my desktop.

Signed-off-by: Jordan Deyton <deytonjh@ornl.gov>