WIP: EGL backend

Doesn't really do much thus far. This is just a stub to remind me to get back to this later. @almarklein did you have in mind to have an `EGL` `app` backend like this for headless rendering? It seems like it might actually be possible, in which case I can investigate further.

On OSX I get the error `'Unable to load EGL library', 'dlopen(EGL, 10): image not found'`, which I expected because I don't have EGL installed. But in Ubuntu I think I'll just need to install the `libegl1-mesa` package to get it to work with software rendering at least. Assuming that works, I can read about how to set up a context with EGL and we might be onto something.
What is this extra_args for? I see it's added here but it seems not to be used?