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.