Ported improvements made to Hits classes to the DocResults classes.

- Potentially long-running DocResults methods are interruptible as well
- DocResultsWindow doesn't call source.size() if it can avoid it
- HitsWindow.hasNext() and DocResultsWindow.hasNext() don't call
source.size() anymore