WIP: Vector3 Rewrite

__Note__: This is still a work in progress but it is extensive and I would like plenty of time for people to examine. @ToxicBakery

This is a significant change to `Vector3` with far reaching modifications to most of the library classes. Among other things, the following major changes were made:

- Methods were refactored to have consistent naming
- Methods which modify the vector return the `this` reference to enable chaining of operations
- Methods which will create a new object are clearly named as such
- Documentation added extensively
- Methods and constants appropriate to `Matrix4` were moved there
- Added some methods to `Vector3` from the libGDX implementation which we did not have