Range scanner which iterates over ranges and adds them to queues.

Next step will be implementation of rangeIterator, integration with
Store, and creation of first actual rangeQueue implementation. Will
probably do garbage collection.
Including the current range in the count seems weird (and you add 1 to it below, which suggests that you're not expecting it to be included).

Returning the exact count remaining on every call to Next seems burdensome to implementers. I would have expected an interface like `Next() (*Range, bool)` and a separate `EstimatedCount() int` method to be called ~once per cycle.

Should this unexported interface define exported methods?