RFC position code

This is a stab at the position code. Any feedback welcome.

I need to at least clean it up and add more tests. Just want to make sure it's going down the right track.
Think this is still wrong. I reckon `CommoditySwap` should be just
`(index, averagingPeriod, strike, volume)`

The user should be able to enter a futures market and a month, meaning the FFPI on the last trading day for that month, into some data structure - however I don't think that data structure should be an instrument.

As it is the CommoditySwap is still confusing observed thing with observation period.