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.
I was thinking of it (not including the current range in the result) more as a lisp-style first/rest split: the first return value represents 0 or 1 elements, and the second return value represents the rest.

The bool was a "hasNext" indication (although on second thought it could be confused with the `, ok` pattern): you'd loop until hasNext was false; you'd never actually make the final call that returned nil. OTOH, returning just the `*Range` and using nil to indicate the end of the list is fine too.