PipelineCache basic operations support

After this cl, pipeline caches remain unused at pipeline creation
time, but some basic functionalities of the pipeline cache itself
have been added:
- Initial data is copied at pipeline cache creation time
- PipelineCache objects must store a header at the beginning of the
  cache
- Providing a bad size to vkGetPipelineCacheData will now return
  VK_INCOMPLETE

Also fixed a few tracing strings in libVulkan.cpp.

Bug b/123588002

Change-Id: Icc0aadbe6a60bf3d2b9d3a43132d26671f60c728
Tests: dEQP-VK.pipeline.cache.*
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/28430
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Vulkan/vulkan.vcxproj b/src/Vulkan/vulkan.vcxproj
index c60dd20..f8e95ad 100644
--- a/src/Vulkan/vulkan.vcxproj
+++ b/src/Vulkan/vulkan.vcxproj
@@ -125,6 +125,7 @@
     <ClCompile Include="VkMemory.cpp" />

     <ClCompile Include="VkPhysicalDevice.cpp" />

     <ClCompile Include="VkPipeline.cpp" />

+    <ClCompile Include="VkPipelineCache.cpp" />

     <ClCompile Include="VkPipelineLayout.cpp" />

     <ClCompile Include="VkPromotedExtensions.cpp" />

     <ClCompile Include="VkQueryPool.cpp" />