3705: generalize PullList module to BlockWorkList

Full description at https://arvados.org/issues/3705
Good idea. Added TestBlockWorkListReaderBlocks to exercise this case. Threw in an explicit test to demonstrate that no data is available on the channel before writing the rest of the input.