SI-8924 don't hold reference to list in iterator

Current implementation of LinearSeqLike.iterator holds
reference to complete sequence. This prevent garbage collecting
of List elements while we keep reference to iterator somewhere.

This commit removes reference from Iterator implementation. This
allow garbage collection of List while we iterating over its
elements (when there is no other references to List in our program).

Test program posted to https://issues.scala-lang.org/browse/SI-8924.
It is hard to turn it into unit test since it run relatively long,
creates GC pressure and run's out of memory on failure.
This seems like a pretty aggressive schedule.  Is it really a good idea to run GCs so closely spaced if they're not working?  On my laptop a full GC always takes over 100 ms to complete in the REPL (granted, a bit more machinery is around than will be in tests).