graphene_quaternion_slerp: Always use the shortest path
graphene_quaternion_slerp: Always use the shortest path

As discussed in the "Invertin Quaternions" section in:
 http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/

We need to check if the dot product (i.e. cos(theta/2)) is
negative. If so, that means the rotation is > 180 degrees and
we should invert the rotation so as to take the shortest path.

Without this rotation animations in gthree get really weird when you
pass 360 degrees. I.e. interpolation is slow clockwise until 360
deg, where it switches to a very fast counter-clockwise rotation only
to then continue the slow clockwise rotation.

ebassi/graphene,ebassi/graphene