Simplify vector math type hierarchy
The ReadOnly and Mutable versions of types should go away, being replaced with final classes that expose data as public fields. This will emphasize performance over expressiveness.
Additionally, operations should be updated so that the calling math object is always the object mutated. There will be no more "result" parameter, instead if it's v1.add(v2, v3), then v2 and v3 are unmodified and v1 stores the sum. The implementation should still support v1 == v2 or v3.
Lastly, I should add Immutable, ReadOnly, and Cloning/Copying annotations so that APIs can describe proper use of vector math results or parameters.