go() -> tick()
Change dispatcher to use call_soon and fix tests
Extracted MessageReciever
Hopefully this will be able to encapsulate the bug fix
Didn't need handle() to be a coroutine after all