This MR adds support for handling `wl_pointer` devices:
1. Handle enter/leave/(absolute) motion/button/axis events to allow users to interact with applications using such devices, e.g., a mouse. 2. Update the cursor image used for Wayland surfaces based on the Windows cursor bitmap data.
A few notes:
1. A single `wl_seat`/`wl_pointer` is supported for now. 2. Many of the input interactions require window management support that hasn't been implemented yet (e.g., popup positioning, resizing, max/fullscreen). 3. There is some potential for bad interactions between the input event dispatching mechanism and the `win32u` flushing logic for `window_surface` , which can lead to visual glitches. Although I don't think this is blocker for this MR, I would like to start a discussion about the problem and mitigation ideas in a [comment](https://gitlab.winehq.org/wine/wine/-/merge_requests/3686#note_43830) below.
Thanks!
-- v2: winewayland.drv: Implement SetCursor using cursor bitmap data. winewayland.drv: Handle pointer button and scroll events. winewayland.drv: Handle pointer motion events. winewayland.drv: Handle pointer focus events.