`Fold` can work with non-Cloneable iterator that produce values or references. We already store references to `Iterator` `Item`s in `fold`'s state. We can store Iterator Items in `Fold` instead. This will make Fold big though.