Refactor the EGL backend to provide a platform separation here, which is better abstracted away than the old EGL/X11 implementation.