3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
Yup - I wanted to make sure that we covered the case where outstanding list elements get discarded, since that's an explicit requirement.