Fixed bug in `Vector3.angleTo` and added unit test

For some identical vectors, the `angleTo` function was returning `NaN` because, due to the numerical imprecision of floating point numbers, the argument to `Math.acos` was something like `1.000000000001`, which is undefined.

I added a unit test for this and other uses of `Vector3.angleTo`.