Adds three new EventStore implementations: one volatile event store that keeps events in an ArrayList, one that cuts of the event stream on a given datetime and one that overlays two other EventStores. Combined they can be used to set up a test environment with events from a production system that freezes the event stream on time of application boot and writes new events to the volatile store that are forgotten on application reboot. Adds dependency on assertj-core for test assertions.