16002: Fix incorrect math in vtkQuaternion
This corrects the math for UnitLog and UnitExp and adds a test to verify that UnitExp(UnitLog(quat)) is an identity operation. It also improves the Slerp() accuracy by using atan2(y,x) to compute the angle rather than acos(x). The reason for avoiding acos(x) is that, if x is close to 1, then small numerical errors in x can give rise to larger numerical errors in the computed angle.
Showing with 50 additions and 33 deletions