Store-gateway: add streaming support to LabelValues() API
Similarly to https://github.com/grafana/mimir/issues/3348 we should add streaming support to LabelValues() API.
What's the priority between LabelValues() and LabelNames()?
I think making LabelValues() streaming based is higher priority than LabelNames(). A look at some Mimir clusters at Grafana Labs, I can see LabelValues() has an higher req/s rate and latency.
Req/s in some clusters over the last 7d:

99th latency (sec) in some clusters over the last 7d:

Discussing more internally at Grafana Labs, there may be not much value rewriting LabelValues() in a streaming way, unless we find some real requests taking GBs of memory. Typically these requests allocates order of magnitude less memory than Series() (for which we already support the streaming-based version).
Anecdotally, I've seen memory usage spikes coinciding with LabelValues calls. But until Also https://github.com/grafana/mimir/issues/4595 was merged last week we didn't have much visibility into resource usage during LabelValues calls.
There is also #4593 which may help here.