fbo-blit-after-swap: New test for partial blits after a buffer swap

Supports a "no-swap" command-line argument; see below.

The clutter/cogl libraries try to minimize the area that gets updated on every frame.
They do this by doing glBlitFramebufferEXT() from the back buffer to the front buffer.

However, this is buggy with software rendering if there has been a
buffer swap *before* the first blit from the back buffer to the front
buffer.  In this case, Mesa fails to initialize the real front buffer with the
contents of the back buffer before doing the blit.

The test does this:

1. Clear the back buffer to blue.

2. Copy the back buffer to the front buffer, by default with a buffer swap (see below).

3. Clear the back buffer to green, and draw a red square in the middle.

4. glBlitFramebuffer() just the red square from the back to the front buffer.

This test supports a "no-swap" command-line argument.  With this
argument, step (2) will be done via a full-frame glBlitFramebuffer(),
instead of a buffer swap.  This exposes another bug with hardware rendering, at
least on Intel graphics.
Blit a green rectangle to the front buffer and test it
Do a final buffer swap and another check
Factor out function to clear a buffer to a certain color
Factor out a function to draw a colored rectangle
Draw the same thing, just with different colors, on both stages of the test

This matches what Clutter does more closely, instead of randomly drawing
in different places.
Factor out the function to test pixel colors
Remove the sleep between stages