Cleanups to DeleagedIterator code (real usage) - and used in #if debug code for IterableFromIterator<> so it assures all iterators destroyed before their owning iterable<>