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.