A Quaternion is a Vec4 with the following behavior:
its length is always 1 (or else it is all NaN)
it is equivalent to an angle/axis rotation for angle a, axis unit vector v, as: q = [ cos(a/2) sin(a/2)*v ] A quaternion is in "canonical form" when its first element is nonnegative.