[x] torrent -> peer session communication channel for:
[x] shutting down session on completion
~[ ] communicating block write results and marking block as downloaded in peer request queue~ (using this as backpressure proved to have flaws and thus is deferred for a separate MR as it's more complex than initially assumed)
[x] refactor duplication in torrent metadata calculation and storage (calculate once, store in a struct, and pass struct to torrent and disk)
[x] minor: named error codes in the test file
[x] minor: use /// code docs for all docs (even for private, to generate docs)
Tasks left:
disk
module///
code docs for all docs (even for private, to generate docs)Fixes: #12 #21 #24 #14