gdk: Add missing declaration in GdkGLPixelFormat
tests/glarea: Make the UI a bit more complex

Add sliders to control rotation angles on all three axis.
gdk/x11: Plug a leak in create_gl_context()

The valid GdkGLPixelFormat is owned by the GdkGLContext using it.
glarea: Clean up the ::realize implementation
gl: Drop the async viewport update

It is not the cause of the flickering, and after checking with the
current implementation of GL widgets like GtkClutterEmbed, it's not
necessary to update the viewport in response to a ConfigureNotify
for child windows.
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.