RFC: Replaced the methods that generate objects during the render

This is a duplicate, but isolated version of @Aryton81's current pull request. Fixes #897. This isolates the GC reduction stuff for Vector3 and Quaternions. I am not immediately merge this because I would like the input of @ToxicBakery especially (other's are welcome as well). 

I have a few reservations about having methods take a result parameter and also returning it. I understand it makes the migration easier but I know we we #586 outstanding and this is a solid step towards resolving that. Let's discuss here what we can do to make this complete.