Rebase pull request #265 from lodejard/dev

Rebased #265 on top of latest aspnet/dev
The nested class has to be `public` since we have
```c#
public async Task<HttpSourceResult> GetAsync(string uri, string cacheKey, TimeSpan cacheAgeLimit)
```
Return type cannot be less accessible than method.