Add `emit_until_response` to event emitter.

This adds a new method called `emit_until_response` which will call
all of the handlers for an event in order **until** one of them
returns a non-`None` response. Once that handler is reached, processing
of the remaining handlers stops.

It is currently not used by anything, but is included as part of #414.

cc @jamesls 
I'd suggest two other tests:

* hook2/hook3 both return True.  How about a test where they return different values and we verify the first return value is what's returned.

* test where no handler returns anything.