Unchoke/Choke algorithm from BEP 003

This need review.

Does something `.choke()` peers outside of torrent-stream? I have the impression that some peers go back to being choked without any action by `onrechoke()`.

Also what is the proper way to pause / resume torrent-stream? Peerflix calls `engine.swarm.pause()`, bypassing torrent-stream layer. `onrechoke` interval should probably be canceled at the same time.