Adding FourVectors
FourVectors should build on the Vector class in Geometry.
A FourVector should have a Vector for the space-compoments plus another Quantity for the time component.
We need two FourVector implementations, one for space-time vectors and one for energy-momentum vectors. We don't to boost the space-time vector, but we frequently boost the energy-momentum vector. The latter may store the momentum components and energy, or momentum components and beta*gamma. Storing momentum and energy is bad, because for relativistic particles energy and momentum become very close, leading to large loss in precision in some calculations.
Internally, all FourVectors should have their coordinates in the lab system, to avoid carrying a pointer to the internal frame around for each FourVector. Conversion into other systems only happens at input and output. This means you only define the internal frame when you set or get coordinates of the four-vector.