Convert all Quantity factory methods to take any Generic type that support Numeric

The underlying value continues to be Double.
This change is a significant step towards making the underlying Generic as well.