temp: wayland/surface: flip committed client frames as soon as possible

This synchronizes page flipping with client surface commits, allowing
client frames to be flipped as soon as possible.

Flipping at the same frequency as the VRR client is drawing its frames
is required in order to communicate the requested refresh rate to the
VRR driver.

This is generally a bad idea because it disables frame scheduling
completely, introducing output latency in multi-window scenarios where
multiple clients commit their frames. It also introduces jitter when
those clients commit their frames at different frequencies.

A better solution would be to enable this synchronization only when
VRR is enabled for the output, so that the VRR client is the only
client being drawn on the monitor. However, this would require frame
scheduling to be performed per-output, which is still not the case in
Mutter.

GNOME/mutter!1154
6 jobs for !1154 with vrr-support in 19 minutes and 29 seconds
latest detached
Status Job ID Name Coverage
  Review
passed #733603
check-commit-log

00:00:35

 
  Build
passed #733604
build-mutter

00:15:05

passed #733606
build-without-native-backend-and-wayland

00:01:49

passed #733605
build-without-opengl-and-glx

00:13:40

 
  Test
passed #733608
can-build-gnome-shell

00:02:03

passed #733607
test-mutter

00:03:49