Allow ODataEntitySetIterator subclasses

I have a use case where I need to provide more strongly typed objects than the base `ODataEntity` and thus need to provide a more strongly typed iterator.  In my iterator (not in this pull request) I need access to the `odataClient` and the cached entity as I overload the `next()` method.