Refactor Vulkan instance and physical device formatting for better clarity. Added formatter utilities to encapsulate version and property formatting. Updated logging to use the new formatted output for improved debug readability.
Updated the layer selection logic to utilize an enum, LayersSelector, which supports selecting no layers, specific layers, or all available layers. This refactor enhances code clarity and allows for more flexible layer management.
Introduce the VkLogicalDevice struct and add surface creation logic in VkInstance. Also, import necessary extensions and refine Vulkan physical device and window handling. Included a dependency on 'anyhow' for error management.