Replace event listeners with generators

Rather than provide event handlers to capture issue updates and
exceptions, and handle appropriately in the client, make functions
to update labels into generators that can be looped, returning
information about the last attempt to update an issue.