Adds ImmutableArray and ImmutableIntMap interfaces

Methods can return `Array` and `IntMap` objects as references to `ImmutableArray` and `ImmutableIntMap` respectively to disallow operations that modify the state of such objects.

`ImmutableIntMap` allows iteration over values, keys and entries although calling `remove()` will throw `GdxRuntimeException`.

This would help in making APIs more robust and harder for the user to break things.

Ashley will depend on Libgdx core to avoid containers duplication and it would need this immutable interfaces.