Adding ListMutableIterator

A mutable iterator is an iterator that can be used to modify the list.
Each list can have at most one mutable iterator. Mutable iterators
can be used together with the Prepend, Append and Remove functions
from List, although mixing removal from the list with removal from
the iterator might lead to unexpected results. This is because the
list might delete the node pointed by the iterator, and therefore
the iterator will be moved to a different element (either the next
or previous element), if that is not possible then iterator will be
invalidated.