pointer: add a frame event
Frame events group logically connected pointer events. It makes sense to make the backend responsible for sending frame events, since once the events are split (ie. once the frame events are stripped) it's not easy to figure out which events belongs to which frame again.
This is also how Weston handles frame events.
Fixes https://github.com/swaywm/wlroots/issues/1468
Breaking changes: compositors now need to listen on the wlr_pointer.frame
or wlr_cursor.frame
events, and call wlr_seat_notify_frame
.