vkd3d: Basic shader cache writing and reading.
This implements serialization of the cache contents to files. I kept this patchset simple - !541 contains patches that will add delayed data reading, writing only modified content and compression. I think the file format introduced in this MR should remain stable for the forseeable future.
I also have some extended tests for tests/vkd3d_api.c that exercise the error handling codepaths. I'll push them to !541 later. For upstreaming the tests we'd have to export the vkd3d_shader_cache API either temporarily from vkd3d or by moving it early to vkd3d-shader.