quartz: Don't bother storing the paint_clip_region

It's unused.
gdkwindow: Don't pass the region to the impl when beginning a paint

It's unused. At the same time, rename "begin_paint_region" to
"begin_paint". This will help us clean up how GDK painting works
in the future to allow more creative use of double-buffering.
gdkwindow: Clean up whitespace slightly

This has been bothering me for a while.
gdkgl: Clean up program-manipulating code

Abstract the program ID and locations into a "program struct" which
we then use.
gdkgl: Use a GdkTexturedQuad struct to paint quads

We'll soon have a new function that paints multiple quads.
gdkglcontext-x11: Make sure to enable the scissor test
gdkgl: Texture many quads at once for performance reasons

This isn't fully performant yet. To be fully performant, we'd need to
do everything in one giant buffer.
gdkgl: Use one VBO for both position and uv attributes
gdkgl: Texture quads in one giant draw call

This requires us to use GL_TRIANGLES and six verts per quad instead
of four, which makes me think it might not be worth it on
well-optimized GL drivers. However, from talking to some driver
developers about it, the GL_TRIANGLES should be faster, since this
means that there's one giant contiguous buffer instead of many small
buffers.

If we were really rendering a lot of quads, I'd use an element buffer
and GL_PRIMITIVE_RESTART, but we're really not ever rendering that
many quads, and the setup cost for that would just be too annoying.