Cleaned up ArrowHelper

1. Made `ArrowHelper` quaternion-based -- it's faster
2. Made judicious use of `matrixAutoUpdate = false`   :-)
3. Used closures where appropriate
5. Continued the assumption that direction vectors are assumed to be normalized