demos: Add GtkGLArea to gtk-demo
glarea: Temporarily disable double-buffering

Double-buffering inside GDK breaks the GL drawing model; GL expects to
handle the output surface in its own way, so the double buffering done
by GTK produces flickering and bad frames.

We need to teach to GDK to ignore windows with native surfaces
associated with a GdkGLContext, while still allowing the ability to draw
with Cairo on a valid surface, but that requires some serious rework of
the drawing code.
gdk/x11: Trap glXDestroyWindow()
glarea: Ensure that the viewport is correctly set

Call gdk_gl_context_update() once we create the GdkWindow inside the
::realize implementation of GtkGLArea, to ensure that the GL viewport is
updated with the size of the GDK window.