Refactor Swaps and Position

Added CommoditySwapSpread. Added discounting. More tests.
Now that lookalikes and spreads are separate, should we rename `period` to `averagingPeriod`?