Refactor EventCollection mostly

This refactor seperates some concerns, documents some of the more weird
methods in EventCollection and cleans up after itself.

Still a lot of refactoring is needed here. I would like to have all
logic regarding fetching of Events into their own classes.