window: fail if the user specifies an GL api that we cannot work with

It would've been caught later in an g_assert anyway.
wayland: support choosing Desktop GL as the api
wayland: shutdown properly

We cannot use _finalize as this will be called before GstGLWindow's
_finalize.  This causes us to try and perform operations with the
wayland server when the connection has been severed.
shader: make it possible to create the object in a non-GL thread
Add GstGLFramebuffer to replace _display_gen_fbo and friends

This version is simply API compatible with _display_gen_fbo.
The next version will likely revamp the API
display: inherit from the right object class