SI-8976 MutableList.tail.iterator.size is length

The previous behavior was to iterate over the mutated
list of arbitrary length. The previous iteration of
the iterator would also iterate the terminal element
of the list without halting.

This is fixed by capping the length of iterator.

That is OK because mutating the list by adding to it during
iteration is not recommended.

For good measure, the exhausted iterator does not hold
a reference to any remaining tail.

A test is added that will no doubt be superseded by the QCC tests.
(Quasi-Comprehensive Collections.)

The test just checks that the extra tail is not strongly
reachable from the iterator. If the garbage collector happens
to kick in and determine that the object is weakly reachable,
then the check terminates early.