SystemTools: Readd direct GetCasePathName caching
With this, duplicate calls to FindFirstFileW
for nonexistent paths get avoided.
These happen a lot for CMake, as the benchmarks show:
Before:
Time (mean ± σ): 17.170 s ± 0.090 s [User: 0.000 s, System: 0.001 s]
Range (min … max): 17.017 s … 17.339 s 10 runs
After:
Time (mean ± σ): 16.629 s ± 0.086 s [User: 0.000 s, System: 0.003 s]
Range (min … max): 16.534 s … 16.817 s 10 runs