3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
Quite right, we can and should remove `items` from this struct.

I haven't actually tried using a `[]interface{}` for this. It might be worthwhile, particularly if we could parse a list of JSON objects directly into that type.