Decouple GdkWindowCache life-cycle from GdkX11DragContext
Decouple GdkWindowCache life-cycle from GdkX11DragContext

By making window caches refcounted. This fixes problems with leaking
drag contexts, as experienced in
https://bugzilla.gnome.org/show_bug.cgi?id=637691
and
https://bugzilla.gnome.org/show_bug.cgi?id=144324

Based on a patch by drago01@gmail.com

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