IntervalIterator
A DocIdSetIterator that also allows iteration over matching intervals in a document.
Once the iterator is positioned on a document by calling [advance] or [nextDoc], intervals may be retrieved by calling [nextInterval] until [NO_MORE_INTERVALS] is returned.
The limits of the current interval are returned by [start] and [end]. When the iterator has been moved to a new document, but before [nextInterval] has been called, both these methods return `-1`.
Note that it is possible for a document to return [NO_MORE_INTERVALS] on the first call to [nextInterval]