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.
Updates based on code review.

* Rename `args` -> `kwargs`
* Add new tests and make handlers return different values.
Merge pull request #417 from danielgtaylor/emit-until-response

Add `emit_until_response` to event emitter.