Add TradeStore and ReferenceDataStore

+
Remove CalendarStore
Move some tests to EventStoreTests
Refactor JsonProtocols
Add ReferenceDataTrait
Prevent storing of duplicates in EventStore
Yup - cause I'm updating latestVersions in the wrong place. It should be done immediately upon write. It's only used to prevent duplicate messages - it doesn't define a 'latest' surface that is user accessible. One line fix but I've a 200 line rebase conflict to do first ;-)