Support for cancellation and timeout
This MR touches the following 2 methods:
- SequencedServer.accept()
- SequencedClient.read()
For these 2 methods, it adds the following improvements:
- Make the calls listen to coroutine cancellation requests (through polling and yielding)
- Add a timeout version of the methods, allowing the user to specify a maximum time spent before giving up.