In-Memory Post Auction  Loop Sharding

This includes splitting the PAL into a PostAuctionService class which handles all communication with the outside world and an EventMatcher which matches events against bids. This split also includes some general clean up as well as a migration of console outputs to the logging framework.

The event matcher comes in two variety, SimpleEventMatcher whcih is a single instance of an event matching service and ShardedEventMatcher which contains n shards all running in their own threads.