The original queue query API has shortcomings which cause confusion and
make it harder to do the things people want with vk-bootstrap.
Design features of the new API:
* Choose a queue given a combination of queue types
- Instead of only choosing based on a single queue type
* Allow picking the first or 'preferred' queue for any given combination of queue types
* Allow picking a present queue with a specific surface handle
- Instead of only using the surface the PhysicalDevice was selected with
* Dont need to update the library to support new queue types over time
Make vk-bootstrap capable of loading the vulkan runtime and not need to
link against the library. This improves the usability of vk-bootstrap since
now you don't need the vulkan library on your system to build.
This commit also changes how SystemInfo works so as to allow the dynamic
vulkan loading.
To recreate a swapchain now requires making a new SwapchainBuilder or
keeping the old one around. Removed the recreate function since its
purpose was unclear. Introduced set_old_swapchain to allow recyling the
old swapchain. Updated documentation and getting started guide.
Updated the documentation for using the new <error_code> based errors.
Also fixed an issue where SystemInfo wouldn't check if layers had a
debug_utils extension.