clutter/stage-cogl: Reschedule update on present
If an update (new frame) had been scheduled already before
_clutter_stage_cogl_presented was called then that means it was
scheduled for the wrong time. Because the
changed since then. And using an
update_time based on an outdated
presentation time results in scheduling frames too early, filling the
buffer queue (triple buffering or worse) and high visual latency.
So if we do receive a presentation event when an update is already
scheduled, remember to reschedule the update based on the newer
last_presentation_time. This way we avoid overfilling the buffer queue
and limit ourselves to double buffering for less visible lag.
Closes: #334 (closed)
Prerequisite: !520 (merged)