Changed condition on which quaternion's length is zero.

As it is rather unusual to have a perfect equality when comparing floating-point numbers. Thus it is necessary to compare with a margin, it being the machine epsilon. It was needed to add two more defines on precision.h, setting the value of real_epsilon for floats and doubles