gdk: Use surfaces for double buffering
gdk: Use surfaces for double buffering

Don't use pixmaps anymore. Also use subsurfaces for implicit paints and
correcly set device offsets.

davidgumberg/gtk,Sidnioulz/SandboxGtk,ahodesuka/gtk,grubersjoe/adwaita,simokivimaki/gtk,jessevdk/gtk,Lyude/gtk-,alexlarsson/gtk,chergert/gtk,jessevdk/gtk,Adamovskiy/gtk,ebassi/gtk,bratsche/gtk-,bratsche/gtk-,davidgumberg/gtk,bratsche/gtk-,simokivimaki/gtk,jigpu/gtk,Sidnioulz/SandboxGtk,alexlarsson/gtk,jadahl/gtk,chergert/gtk,ahodesuka/gtk,davidgumberg/gtk,bratsche/gtk-,ahodesuka/gtk,davidgumberg/gtk,ahodesuka/gtk,ebassi/gtk,jadahl/gtk,davidgumberg/gtk,simokivimaki/gtk,chergert/gtk,grubersjoe/adwaita,jessevdk/gtk,bratsche/gtk-,ahodesuka/gtk,alexlarsson/gtk,jigpu/gtk,jigpu/gtk,grubersjoe/adwaita,Sidnioulz/SandboxGtk,ebassi/gtk,davidt/gtk,ahodesuka/gtk,jessevdk/gtk,alexlarsson/gtk,jigpu/gtk,jadahl/gtk,Distrotech/gtk2,jigpu/gtk,simokivimaki/gtk,ebassi/gtk,simokivimaki/gtk,grubersjoe/adwaita,jadahl/gtk,Adamovskiy/gtk,jessevdk/gtk,Distrotech/gtk2,ahodesuka/gtk,davidgumberg/gtk,grubersjoe/adwaita,Distrotech/gtk2,msteinert/gtk,chergert/gtk,jessevdk/gtk,alexlarsson/gtk,Distrotech/gtk2,jadahl/gtk,davidt/gtk,Sidnioulz/SandboxGtk,Lyude/gtk-,davidt/gtk,Adamovskiy/gtk,chergert/gtk,Sidnioulz/SandboxGtk,ebassi/gtk,Adamovskiy/gtk,Lyude/gtk-,Lyude/gtk-,jigpu/gtk,davidt/gtk,bratsche/gtk-,jadahl/gtk,Adamovskiy/gtk,Lyude/gtk-,Lyude/gtk-,msteinert/gtk,chergert/gtk,davidt/gtk,ahodesuka/gtk,chergert/gtk,ebassi/gtk,davidgumberg/gtk,alexlarsson/gtk,msteinert/gtk,jessevdk/gtk,Lyude/gtk-,jadahl/gtk,Adamovskiy/gtk,davidgumberg/gtk,msteinert/gtk,msteinert/gtk,Lyude/gtk-,Adamovskiy/gtk,jigpu/gtk,chergert/gtk,alexlarsson/gtk,Distrotech/gtk2,Sidnioulz/SandboxGtk,grubersjoe/adwaita,simokivimaki/gtk,msteinert/gtk,alexlarsson/gtk,grubersjoe/adwaita,Distrotech/gtk2,Adamovskiy/gtk,jigpu/gtk,grubersjoe/adwaita,jadahl/gtk,davidt/gtk