Increased Visibility of Dimension Classes

The D2 and D3 classes need to be visible outside of the
package to allow users of the library to use the
dimension-generic interfaces.
Created Convenience Classes for Point and Vector

2D and 3D Vectors and Points are very common. It is a lot easier
and a lot more readable to call getX instead of getComponent(0).
In addition, vectors have dimension specific functionality
(like the cross product) and it is easier having this outside of
the Vectors utility class