Make keyboard code support multiple GDK backends
Make keyboard code support multiple GDK backends

Adapt the keyboard code so that it builds with GTK2 and GTK3,
where the latter has multiple GDK backends

flexVDI/spice-gtk,fgouget/spice-gtk,fgouget/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,Fantu/spice-gtk,elmarco/spice-gtk,guodong/spice-gtk,guodong/spice-gtk,SPICE/spice-gtk,SPICE/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,elmarco/spice-gtk,dezelin/spice-gtk,dezelin/spice-gtk,fgouget/spice-gtk,guodong/spice-gtk,Fantu/spice-gtk,dezelin/spice-gtk,flexVDI/spice-gtk,elmarco/spice-gtk,mathslinux/spice-gtk,guodong/spice-gtk,mathslinux/spice-gtk,dezelin/spice-gtk,mathslinux/spice-gtk,Fantu/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,SPICE/spice-gtk,mathslinux/spice-gtk,elmarco/spice-gtk,SPICE/spice-gtk,Fantu/spice-gtk