- Lots of big refactoring changes
- Vector split into IVector, Vector2, Vector3, Vector4
- BaseQuantity and BaseDimension removed.
- Removed generics on Dimension
- Added IQuantity interface, Quantity and Quantity<> extend it
- Quantity is a wrapper for doubles using Quantity<> and DoubleWrapper classes
- Make serialization and deserialization work for implementations of INumber
- Changed interface hierarchy so we have: IValue <- IValueExtended <- INumber | IQuantity... and the concrete classes hang off each of those respectively
- Note: a few major things still aren't working nicely and a couple of tests aren't passing but looking pretty good :)