add event dispatcher

Allows tests to interact with components.

For now, its in every setup/teardown, but we only
need it for components and views. We need some
infrastructure to make adding setup and teardown
logic for each moduleFor* method to be simpler,
and when we have that, we'll move the dispatcher
there.