3705: update for code review

* Changed the type of the NextItem channel from *list.Element to
  interface{} (i.e. a list.Element.Value)
* Better comments
* Cleaner testing framework
* TestBlockWorkListReaderBlocks to exercise the case where readers block
  when the list is exhausted, and resume when new data is supplied.