3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
I do like having very simplified sample code in the comments, to give a concrete idea of how to get started, but the emphasis should obviously be on "very simple." I'll pare it down a lot here.