Tweaks and fixes to the SMILTimeContainer frame scheduling logic

Restore the old frame delay as |initialFrameDelay| and use that in
begin(). (There's a 15ms difference from DocumentTimeline::s_minimumDelay,
in case that matters to some layout test.)

Use a separate state (FutureAnimationFrame) for the cases where an
animation frame is requested later than the next frame interval. This
avoids unnecessary work in the frame callback (which is gated on the
state being AnimationFrame).

Fix an issue where an animation frame could end up being scheduled,
although a synchronization had been triggered already (via
updateAnimations() and a syncbase dependency for instance). Similarly also
avoid increasing the timer in begin() for similar cases.

BUG=231576

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

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