Implemented the Iterable interface for ImmutableArray.
Fixed ImmutableArray returning a mutable Iterator.
An immutable iterator is cached and reseted when the iterator method is called