This refactors out some common pieces of code from the vulkan drivers, and is a precursor for a series where I move the WSI code to being shared between both drivers for consistency. It would be nice to land this stuff soon as it's mostly pretty trivial, but the vk_alloc changes are messy to constantly rebase. Dave.