Array: add Iterable and Iterator.allowRemove

Add Array.ArrayIterable: E.g. both the Model and ModelInstance class internally use Array#iterator() a lot, which can lead to usage of nested iterators (note how I worked around that problem in Basic3DSceneTest by iterating on index). This change allows those classes to have an Iterable for internal usage, leaving the Array#iterator() valid for the user to use.

I also added a allowRemove to both ArrayIterator and ArrayIterable. As an example for this, I updated the Material class, where removing attributes using the iterator would make the material (mask) invalid.