radv: use vk_pipeline_cache
This series re-implements the RADV pipeline cache based on the common vk_pipeline_cache.
Based on !21967 (merged) and !22029 (merged).
We use a dual-layer approach with two types of cache entries
- radv_shader:
- serialized as radv_shader_binary
- uses SHA1 of the binary as key
- radv_pipeline_cache_object:
- contains pointers to associated radv_shaders
- serialized as list of SHA1
- uses pipeline hash as key
In combination with single-file disk-cache, this reduces the cache size by ~60%. With multi-file disk-cache, it slightly increases the cache size by ~2% due to the overhead from additional small files.