Fling controller calls progress fling after processing GFS.

This cl have the following changes to make sure that fling animation is
smooth.

1-Instead of scheduling a fling progress after processing a GFS, the
fling controller calls progress fling to send the first progress event
to the renderer without waiting for the next frame. This change broke
some tests that had GFS events with small velocity and had the
assumption that fling is still active when a GFC is sent.

2- The controller does not reset the GFS timestamp when the progress
fling when current_time is less than the GFS timestamp since changing
the GFS timestamp to a smaller time makes the next event's delta bigger.

3- ProgressFling does not early return if the first time that progress
fling is called is two frames later than the GFS timestamp (the call
on the first frame is missed) since deferring sending the progress event
even longer makes the fling janky.

Bug: 249063
Change-Id: I7aec6a891fc01c11d65445e3bb4d432df7bf1955
Reviewed-on: https://chromium-review.googlesource.com/1140912
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: Sahel Sharify <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577337}
6 files changed