vulkan: Implement support for dedicated imported allocations
Dedicated allocations are ones where memory is allocated with a single image or buffer specified at allocation time, and only that buffer or image can be bound to the memory. Our first use-case for supporting it is to handle importing dma_bufs on AMD hardware, where the driver says dedicated allocations are required. There are no dramatic changes required to enable this. We are not supporting generic dedicated allocations at this time as we don't have a use for them. This change also includes alignment verification logic from haasn. I've tested this on Intel hardware, which doesn't require dedicated allocations, but works fine if you force them.