Use LRU cache for pack objects cache
The pack objects cache allows subsequent clones/fetches to use the same packfile as long as the refs of the requests are the same. Currently however, the cache is configured globally in Gitaly by setting a timeout. This has worked out really well in many cases, helping to reduce CPU load on the server.
However there are opportunities for improvement, mainly around the control and granularity of how long a packfile remains in the cache. In the case of CI for instance, you might want to cache the pack objects for a given ref for longer.
Let's consider making the streamcache in general more flexible to allow clients to control how long certain entries are cached for.