EntityIterator improvements

- [x] Ability to fetch pagination data object using `getPaginationData`
- [x] Ability to directly fetch array of entities using `getEntities`
- [x] `$entities` param in `__construct` defaults to `array()`
- [x] Implement `Iterator` so `EntityIterator`s can be used in foreach loops