Fix for #3454 ISet iterator.remove() now throws UnsupportedOperationException 

The ISet iterator is now taken from a collection wrapped in `Collections.unmodifiableCollection`. Trying to remove items from it will result in UnsupportedOperationException.

Fixes #3454 
Since it is an abstract class, maybe we can consider just overriding `iterator`