gdk_window_end_paint: Only paint the blended region if non-empty

This allows us to avoid state changes in the common case.
gl: Don't save glx_pixmap for surfaces

This broke DRI2, as we ended up calling glXDestroyPixmap after
the real pixmap had been freed by cairo. We're not really
using the saved pixmap anyway, so just free it when done.