=str Rewrite IteratorPublisher

* used for both () => iterator and iterable Source
* cleanup duplication in tests