Search backend: DRY out searcher streams
Created by: camdencheek
We currently have two different stream limiters in searcher: one for streaming and one for batch. I honestly don't remember why, but we can implement the collecting stream by appending in the callback. Just trying to reduce some maintenance costs here since I've had to change both of these in multiple times during these multiline refactors.
Stacked on https://github.com/sourcegraph/sourcegraph/pull/36431
Test plan
Many tests depend on this batch limit. Its behavior should be well-covered.