Cache Windows mount point info (#8572)
Cache Windows mount point info (#8572)

It seems like every upload creates a new StorageInfo object.

This makes it very sensitive to slow code paths.

A particular slow function is `IsLikelyMountPoint` on Windows since `windows.GetVolumePathName` is slow.

We cache the result of this operation.

Before:

```
Operation: PUT - Concurrency: 12
* Average: 70.46 MB/s, 70.46 obj/s, 70.46 ops ended/s (59.58s)

Aggregated, split into 59 x 1s time segments:
* Fastest: 77.67 MB/s, 77.67 obj/s, 79.00 ops ended/s (1s)
* 50% Median: 70.84 MB/s, 70.84 obj/s, 70.00 ops ended/s (1s)
* Slowest: 61.51 MB/s, 61.51 obj/s, 61.00 ops ended/s (1s)
```

After:
```
Operation: PUT - Concurrency: 12
* Average: 166.80 MB/s, 166.80 obj/s, 166.74 ops ended/s (59.8s)

Aggregated, split into 59 x 1s time segments:
* Fastest: 183.83 MB/s, 183.83 obj/s, 186.00 ops ended/s (1s)
* 50% Median: 167.47 MB/s, 167.47 obj/s, 166.00 ops ended/s (1s)
* Slowest: 139.30 MB/s, 139.30 obj/s, 141.00 ops ended/s (1s)
```
harshavardhana/minio,NitishT/minio,aead/minio,harshavardhana/minio,harshavardhana/minio,vadmeste/minio,aead/minio,harshavardhana/minio,krisis/minio,fwessels/minio,NitishT/minio,aead/minio,aead/minio,fwessels/minio,harshavardhana/minio,NitishT/minio,aead/minio,aead/minio,aead/minio,balamurugana/minio,balamurugana/minio,minio/minio,vadmeste/minio,fwessels/minio,harshavardhana/minio,harshavardhana/minio,krisis/minio,donatello/minio,aead/minio,fwessels/minio,harshavardhana/minio,NitishT/minio,donatello/minio,minio/minio