WIP: Vulkan Instance Builder
Description
Adds an instance builder to allow a sample to completely customize how a vulkan instance is constructed.
Also adds a vulkan test framework so that we can intercept vulkan calls and make sure that our API usage is as expected. I've never been able to do Vulkan TDD before but I think this solution makes it viable. It works by overriding global volk PFN_vkFunction declarations so that we can intercept vulkan calls and validate our actual vulkan usage.
This method of testing will never replace OOB testing against an actual driver. But at least with good test coverage we can confidently say that a specific Vulkan component should work as expected against the Vulkan specification.
fixes #466
@gpx1000 thoughts on the Vulkan unit tests here?