clutter/stage-cogl: Factor in pending_swaps to next_presentation_time

`get_update_time` was returning `-1` in some cases even if `schedule_update`
was called prior. So the master clock was overshooting the correct update
time and missing some frames. This seems to be happening most under moderate
CPU load (gnome-shell#1411), but not so high a load as to justify the frame
skips that were occurring.

The reason for `get_update_time` returning `-1` in these cases was because
it was considered impossible to calculate the next update time while
`pending_swaps > 0`. That's not completely true. We know if
`pending_swaps == 1` then `schedule_update` should schedule one frame later.
So just factor `pending_swaps` into `schedule_update`. Now `get_update_time`
won't return `-1` in these cases so we're more likely to render the next
frame (or move the cursor) at the correct time.

Closes: GNOME/gnome-shell#1411

GNOME/mutter!651
5 jobs for !651 with schedule-later in 10 minutes and 54 seconds
latest detached
Status Job ID Name Coverage
  Review
passed #378091
check-commit-log

00:00:24

 
  Build
passed #378092
build-mutter

00:07:33

passed #378093
build-without-native-backend

00:07:25

 
  Test
passed #378095
can-build-gnome-shell

00:01:18

passed #378094
test-mutter

00:02:55