Removes from the underlying collection the last element returned
by this iterator (optional operation). This method can be called
only once per call to Iterator.next(). The behavior of an iterator
is unspecified if the underlying collection is modified while the
iteration is in progress in any way other than by calling this
Implementations may or may not support removal when a call to peek() has occurred
since the most recent call to next().