[Segment Cache] Search param fallback handling (#75990)
This implements search param handling in the Segment Cache.
When a cache entry is fetched via PPR, search params are treated as
dynamic data. We can share the same cache entry for every set of search
params for a given page segment.
By contrast, when a cache entry is fetched using a dynamic request (e.g.
using `<Link prefetch={true}`), the result may vary by the search param
values. So we must include the search params in the cache key.
During a navigation, we will first check for the more specific cache
entry (i.e. one that includes search params), and then fallback to the
PPR version if no such entry exists.