introduced immutable collection interface

Splitted the Collection interface into Collection and ImmutableCollection to make it possible to restrict access to your collection type and still have the benefits of the Doctrine Collection framework. This way you can force the use of add and remove methods in the Entity.

This could also lead to more efficient use of HHVM Collections in the future.
http://docs.hhvm.com/manual/en/hack.collections.immutable.php

Please comment on the idea and the naming of the interface.
I would avoid ImmutableCollection entirely actually, as it would still be possible to implement ImmutableCollection and Collection together, which does not make much sense. ReadableCollection and Collection would be enough