Issue dispatcher update in an async IOLoop.

This moves the coroutine code that updates the dispatcher onto the
IOLoop's instance, rather than the random thread that was invoked by the
kazoo's callback.

Tests updated accordingly.