util: Use ZSTD for shader cache if possible
This allows ZSTD instead of ZLIB to be used for compressing the shader cache.
On a 72 core system emulating skl with a full shader-db (with i965):
ZSTD:
1915.10s user 229.27s system 5150% cpu 41.632 total (cold cache)
225.40s user 10.87s system 3810% cpu 6.201 total (warm cache)
154M (235M on disk)
ZLIB:
2231.33s user 194.24s system 1899% cpu 2:07.72 total (cold cache)
229.15s user 10.63s system 3906% cpu 6.139 total (warm cache)
163M (244M on disk)
ZSTD reused context:
1888.13s user 231.60s system 5181% cpu 40.908 total (cold cache)
229.31s user 11.46s system 3853% cpu 6.248 total (warm cache)
154M (235M on disk)
The apparent size of the zlib cache is 4.6M; the apparent size of the zstd cache is 4.5; the actual size in both of them is 7.1M.