Things don't work yet, but this feels much cleaner.
This paves the way for clean initialization of the Vulkan renderer, and very much cleans up the older renderer initialization code as gl and sw are no longer intertwined.
Doesn't do much other than create an instance and enumerate some stuff, but the build system is working.