Update StateListenerTest#listenerTest to handle duplicate events.

Since there are no guarantees that a StateListener does not emit the
same event multiple times, this test has been updated to check the
number of hosts an event type was emitted for instead of the number of
events.  For example, if the control connection host changes around an
event change (like a node being removed), it's possible that the toplogy
change will be received on each host.