catfile: Introduce request queues to allow batching reads
This MR introduces request queues into the catfile package to allow batching reads. This solves the problem that we're creating too many tracing spans, and also allows us to start using batched I/O for requesting objects from commands in a follow-up MR. This MR here significantly reduces the number of allocations:
- 17% less allocations in ListAllBlobs with contents, 40% less without contents
- 25% less allocations in ListBlobs
- 17% less allocations in ListAllCommits
- 22% less allocations in FindAllTags
Also, FindAllTags is sped up by about 30% by this change.
Closes #3783 (closed)