vid: implement monitor selection with instant cvar changes
Adds cvars: vid_display, vid_info_displaycount
Prints the monitors detected at startup and on hotplug.
Requires SDL headers >= 2.0.18 at build time.
At runtime older versions should still work but may lack some functionality.
May not work properly or at all if vid_desktopfullscreen is 0.
May require vid_restart after hotplug events.
---
Changes existing cvars vid_fullscreen, vid_desktopfullscreen, vid_resizable,
vid_borderless to apply instantly.
Also (for windowed mode) works around window managers that move the
window after SDL creates and centres it (typically when adding a
titlebar), so the crosshair is always at the centre of the monitor.
Adds some missing SDL_WINDOWEVENT enumerations.
Changes the GL viewport size retrieval from screen coordinates to
pixels, which is a prerequisite for "HIGHDPI" aka "Apple Retina"
support.