SDL >= 2.0.9 permits passing a nullptr window to
SDL_Vulkan_GetInstanceExtensions, so there's no
point in going though the work of creating a
window just to call this function.
This change introduces a new system for providing extra instance/device extensions.
This consolidates platform-specific and vr-related to its' own thing for potential future cross-platform/native Linux work.