3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
1. I wrote expectChannelClosed to test exactly that case.

2. I rewrote those to two tests using my helper methods in comments on your latest code. I believe I accurately reproduced all the checks, while at the same time making the code more readable, but please let me know if I missed anything.