added ValuationContext

A ValuationContext has environment, refdata and valuation params.

OptionOnFutureValuation implemented.
added very basic swap and future valuation

also key recording environment. valuation is pretty simple at the moment. mostly
 just an attempt to figure out the structure.
Fleshed out some swap code

Added Spot prices. Swaps on Spot Markets
Changed curves so they return Either rather than throw an exception
 if there's missing data.
Merge pull request #8 from og3b/master

added ValuationContext
MarketDataStore
Post review fixes
Merge pull request #9 from thoozaho/stores

MarketDataStore
nasty bug in UOM.asPrimeMap. When adding two maps together it could
 lose data from the first map

Fixes #10
Merge pull request #11 from og3b/i10-qtybug

 #10 bug in multiplication of UOMs
Position code

Code for showing the position of swaps and futures in terms
of swaps and futures.
Merge pull request #12 from og3b/master

Position code
Add TradeStore and ReferenceDataStore

Remove CalendarStore
Move some tests to EventStoreTests
Refactor JsonProtocols
Add ReferenceDataTrait
Prevent storing of duplicates in EventStore
Merge pull request #13 from thoozaho/more-stores

Add TradeStore and ReferenceDataStore
Refactor Swaps and Position

Added CommoditySwapSpread. Added discounting. More tests.
Some caching and performance improvments.
Merge pull request #15 from og3b/master

Refactor Swaps and Position
Redesign EventStore

Serialization/deserialization is in parallel
Writes are processed in order
Duplicates aren't written to Kafka
Merge pull request #16 from thoozaho/parallel-event-store

Redesign EventStore