splitted ArrayCollection into ImmutableArrayCollection and ArrayCollection, changed interface name to ConstantCollection to resamble the naming in HHVM