win32: clip and move cursor within window region
win32: clip and move cursor within window region

Windows grab do not exist like on X11, so we need to clip the cursor
to our client window, while making sure it doesn't overlap with
windows statusbar. When wrapping the cursor, we need to make sure we
also stay within the clip region, or else the clip is inverted
(pointer can't enter the clip region anymore), and we also lose the
keyboard hook/grab.

The end result works better than spicec, which didn't exclude the
Windows statusbar, and was subject to losing pointer when wrapping
mouse over it.

Another approach I have been playing with is to clip the cursor, and
process raw input messages, this will have the advantage to work even
when the client is completely out of the working area (under the
statusbar for example), but the complexity involved is too high for
very poor benefit (interacting with a non-visible client), we could
even argue that the behaviour implemented by this patch is more
correct (it refuses to grab the cursor if the client isn't visible in
the working area).

v2:
- choose the nearest monitor for clipping
- the ClipRegion is in Windows coordinate, we can't use gdk warp
- fix https://bugzilla.redhat.com/show_bug.cgi?id=872640

This solves the following bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=857430
https://bugzilla.redhat.com/show_bug.cgi?id=857389

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