3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
This code implies that we'll delete all the blocks ASAP, but actually we want to delete the blocks only when space is needed. Let's update the code to say that. Or if switching to the pull request example is easier we can do that too.

In fact once you include the summary of how this class will be used, maybe we won't need the example code at all.