Use EventCollector if possible.

Avoids duplicate implementations of RunListener for different test and
provides Hamcrest matchers for verifying events sent to the listener.
We no longer use an `f` prefix for fields