Fixed capture groups becoming unavailable for some queries.

The problem was that some queries use SpansInBuckets to "prefetch" hits
from its underlying Spans object and do something with them (e.g. sort
by endpoint instead of start point). The underlying Spans object would
be advanced past the hits, making the capture group information
unavailable.

To fix this, BLSpans.getCaptureGroups() is now used to "bubble" capture
group information up the BLSpans tree instead of querying it directly
from the BLSpans object we were trying to capture. SpansInBuckets can
therefore just fetch the capture group information as well and pass it
up when the time comes.