3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
We don't actually use `items` and can remove it from here, right?

Also I'm wondering if a doubly linked list is the right underlying datastructure to use, or whether we should be using array slices instead.  I don't think we need to make such changes at this point, but if you have some thoughts on the matter, I'd love to see them appear in as comments in the source here for curious users (like myself).