3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
FWIW, the reason I liked BlockWorkList so much was just that I couldn't stand the thought of leaving it as BlockManager. Now that we've figured out that the list items don't need to be addressable by block hash, the Block part of the name isn't so helpful any more. I agree something like WorkQueue or ResettableWorkQueue (AsynchronousWorkQueue?) would be even better.