clutter/master-clock-default: Sync timelines to hardware vsync

Previously clutter timelines advanced according to `g_source_get_time`.
But that meant they were subject to dispatch erraticness and represented
a time older [1] than the intended presentation time.

Now we instead use `master_clock_get_next_presentation_time`. This
provides the near perfect smoothness of hardware vsync as well as being
slightly in the future, closer to the intended presentation time.

This means, for example, backends like Xorg that move the hardware cursor
independently of repaints will have their animations more closely matching
the hardware cursor position. So there's now a smaller gap between the
cursor and titlebar when dragging windows.

[1] "older" = (refresh_interval - sync_delay) = ~14ms for 60Hz

Closes: GNOME/mutter#25

GNOME/mutter!724
5 jobs for !724 with smoother-timelines in 19 minutes and 46 seconds (queued for 1 second)
detached
Status Job ID Name Coverage
  Review
passed #391258
check-commit-log

00:00:20

 
  Build
passed #391259
build-mutter

00:11:35

passed #391260
build-without-native-backend

00:14:24

 
  Test
passed #391262
can-build-gnome-shell

00:02:48

passed #391261
test-mutter

00:05:01