wayland: Fix infinite loop in touch_handle_cancel_event()

https://bugzilla.gnome.org/show_bug.cgi?id=733631
wayland: Rename touch_handle_cancel_event() to meta_wayland_touch_cancel()

This will serve as a generic call to issue touch cancellation on clients,
useful for the gesture tracker support.

https://bugzilla.gnome.org/show_bug.cgi?id=733631
window: Use event data getters in event handling code

This makes these functions more independent wrt touch vs pointer events

https://bugzilla.gnome.org/show_bug.cgi?id=733631
wayland: set the current serial on touch down/up notifications

Do just like pointer button events, and do not bump the serial, so serials
match on window drag/move requests triggered from touch events.

https://bugzilla.gnome.org/show_bug.cgi?id=733631
display: Implement gesture-induced touch cancellation for wayland

On wayland, touches are initially both handled by the compositor and sent
to clients, proceeding to cancellation on clients only after the compositor
claims the sequence for itself. Implement the cancellation detail through
MetaGestureTracker::state-changed.

https://bugzilla.gnome.org/show_bug.cgi?id=733631