listcache: Add path index (#11063)
Add a root path index.
```
Before:
Benchmark_bucketMetacache_findCache-32 10000 730737 ns/op
With excluded prints:
Benchmark_bucketMetacache_findCache-32 10000 207100 ns/op
With the root path:
Benchmark_bucketMetacache_findCache-32 705765 1943 ns/op
```
Benchmark used (not linear):
```Go
func Benchmark_bucketMetacache_findCache(b *testing.B) {
bm := newBucketMetacache("", false)
for i := 0; i < b.N; i++ {
bm.findCache(listPathOptions{
ID: mustGetUUID(),
Bucket: "",
BaseDir: "prefix/" + mustGetUUID(),
Prefix: "",
FilterPrefix: "",
Marker: "",
Limit: 0,
AskDisks: 0,
Recursive: false,
Separator: slashSeparator,
Create: true,
CurrentCycle: 0,
OldestCycle: 0,
})
}
}
```
Replaces #11058