3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
OK. I'm going to add a comment anyway because I'm paranoid, and not keeping a pointer to the list makes the code look a little more confusing to me.