Refactor the EventRecorder class to make it more usable.
Add more tests to verify that submitting changes causes the expected
ref-updated and change-merged events to be emitted.
Remove testing of the change-merged event from the submit() method
since it's now explicitly covered by the actual test cases.
Some of the updated tests are failing due to the change-merged event
not having expected values. These tests are annotated with @Ignore,
and the problems are tracked in issue 4193 and issue 4194.
The following cases are still not yet covered:
- ref-updated and change-merged events on projects/branches other than
the default project's master branch.
- events for cases involving "submit whole topic".
Change-Id: Iaea6b17aa40660be1b4ef74d2ce1d88881dee9f2