add Vector3.projectOnUnit, Vector3.projectOnVector and Vector3.reflect

Updated based on discussion below.

Based on the request here #3009 for a Vector3.reflect function, I have added 3 related functions:

```Vector3.projectOnUnit( unitNormal )```, projects the current vector onto the normal based on the theory outlined here: http://en.wikipedia.org/wiki/Vector_projection

```Vector3.projectOnVector( vector )```, projects the current vector onto the vector  based on the theory outlined here: http://en.wikipedia.org/wiki/Vector_projection

```Vector3.reflect( unitNormal )``` reflects the current vector given the current implied plane normal.  It utilises ortho() above.

Wrote a bunch of unit tests and they all pass.