Web Animations: Implement AnimationClock and fix start time of animations

We currently update the current time of the DocumentTimeline only when
serviceAnimations is called and when we set the zero time. As a result,
when we start animations/transitions (without any currently running),
their start time will be incorrect since the current time won't have
been updated recently.

This patch adds an AnimationClock to fix this issue. The
DocumentTimeline will pass time updates on to the clock when it gets
them (serviceAnimations). The clock has a notion of being 'frozen',
which corresponds to having an up to date time.  When it is not frozen,
the next call to AnimationClock::currentTime() will update the time, so
newly started animations have up to date times. We always unfreeze after
a document style recalc finishes, and freeze at the end of updateTime().

Note that the AnimationClock is on Document and not the DocumentTimeline
since a TransitionTimeline is going to be added in a later patch which
will need to refer to the same clock.

The TestExpectation change is for a test which waits 200ms before
starting an animation.

BUG=258896

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=160071

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

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