C++: Adding remove() to IIterator and the appropriate implementaitons.

Sadly, this removes the constness of the iterator, but that is to be expected.