Refactor Swaps and Position

Added CommoditySwapSpread. Added discounting. More tests.
this uses scalaz Equal to defined in QuantityTestUtils to do a almost equals match.