Web Animations: Timeline should not advance during task execution

Previously the animation clock was only frozen during animation frame
callbacks. This meant that the timeline was able to advance during other
tasks.

This patch allows the clock to advance once per task, either to the
compositor supplied frame start time or to an approximation of the next
expected frame time.

http://dev.w3.org/fxtf/web-animations/#script-execution-and-live-updates-to-the-model

This is a reland of r173583[1], the previous patch hit added assertions
due to double rounding issues, the new approach avoids these. Also ensures
that other unit tests see a non-zero currentTime (seen in some webkit_unit_test
runs on Android).

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=173583
BUG=367903
TBR=abarth

Review URL: https://codereview.chromium.org/275753002

git-svn-id: svn://svn.chromium.org/blink/trunk@173729 bbb929c8-8fbe-4397-9dbb-9b2b20218538