Performance and memory improvements: EventCache returs reader from its
query methods (not ArrayList), events are removed from EventCache by
their ID (not EventId).