3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
I think current_list is only used locally. I don't think we need to store it, right?

It seems to me that everywhere we set current_list, we set current_item from it and then don't use it again. So we're fine with just current_item.