Set EGL_NV_robustness_video_memory_purge where applicable
This enables kwin to get notified when a memory has been lost in the system, allowing the driver to purge all the memory and have kwin create new contexts.
This matches what we do on GLX.
Check for extensions in logic for global contexts
The current code for creating the root shared context is very naive and does not take into account aspects like robustness or versions.
It is not always possible to mix attributes, in particular robustness meaning we are unable to opt into these features in future contexts.
This refactors everything to use a common path to make all contexts.
Edited by David Edmundson