* Fix handling of Unicode paths on Windows
I love C++
* Reduce the amount of reinterpret_casts
* Okay? Don't commit the file CLion? Why not?
* Fix texture replacements too
* Set up dawn cache
Massively speeds up pipeline compilation on the second go around, especially for D3D12.
Currently, uses SQLite for the cache. SQLite is committed in as the "amalgam" blob, but I'm open for better ways to fetch it.
* Compress cache contents with zstd
More significantly for Vulkan, less so for D3D12.
* Store cache keys as XXH128 instead
This reduces the size of the D3D12 cache by a ridiculous amount
* Stop using exceptions for error handling
* FetchContent for sqlite; cleanup & make zstd optional
---------
Co-authored-by: Luke Street <luke@street.dev>