vulkan: add external VkImage interop API
This is essentially the same interface that's used between pl_gpu and the vulkan swapchain implementation, tidied up a bit and exopsed to the user. This required tying off some loose ends related to queue families in order to make sure the behavior is defined. Closes #22.
Showing with 145 additions and 45 deletions