The other sources include cairo.h by just using #include <cairo.h>, so do likewise here.
A function of GdkDrawingContext is only used when drawing with Cairo, so move it to GdkCairoContext.
This does nothing but disallow passing NULL to gdk_surface_begin_paint() and instead require this context. The ultimate goal is to split out Cairo drawing into its own source file so it doesn't clutter up the generic rendering path.