Since Stroika v2.1d6, iterators use unique_ptr instead of SharedByValue.
This is mostly a win, except for a few places where we copy iteerators.
MANY of these are by design. Many are just in debugging code (like most DelegatedIterator use).
And many more can be fixed by more careful use of move.
Like Set::AddAdd (), etc.
Set breakpoint in Iterator::Clone () - and see where it gets called (like in the seuqnce and set regtests).
And maybe more.