Implementing quaternion rotation

Replaced the first rotation algorithm with the quaternion method, after
finding out that the first algorithm produced a bit of a skew, because
of imprecise replacement by a straight delta instead of an arc-delta.