refactored collection to be internal and made some helper methods external

I think this refactor makes collections easier to understand and iteration code more succinct

e.g:
```objectiveC
for (ESEntity *entity in [entityRepository entitiesForType:[UnwantedComponent class]])`
{
    [entity removeComponentOfType:[UnwantedComponent class]];
}
```