win32: Let cairo create DIBs for GdkPixmap
win32: Let cairo create DIBs for GdkPixmap

The win32 code for GdkPixmap dib creation workes as such, but
when creating a cairo surface for it with cairo_win32_surface_create
from the HDC it fails for any bitmap format than RGB24, due to
assumptions in cairo.

In order to create a cairo surface for e.g. A1 formats we need
to let cairo create the surface via cairo_win32_surface_create_with_dib.
Additionally, we must then make sure to use this surface in
gdk_drawable_ref_cairo_surface, and to not create a new HDC for
it but reuse the cairo one (as only one HDC can write to a bitmap).

Even with this fixed there are some issues with current cairo, as
cairo A1 format isn't quite the same as win32 monochrome bitmaps.
Fixes for cairo will be submitted.

Distrotech/gtk,johne53/MB3Gtk-2,Unity-Technologies/gtk,Distrotech/gtk,johne53/MB3Gtk-2,Distrotech/gtk,johne53/MB3Gtk-2,johne53/MB3Gtk-2,Distrotech/gtk,Distrotech/gtk,Unity-Technologies/gtk,Unity-Technologies/gtk,Unity-Technologies/gtk,johne53/MB3Gtk-2,Unity-Technologies/gtk