Web Animations: Implement new fill-mode behavior

This change introduces the before, active and after animation phases, and removes the
scheduled and active states in favor of the in-play state.

Although the new fill-mode behavior wont be visible until animation groups are introduced,
implementing the new algorithms allows us to fix a bug. Previously the active time was
calculated incorrectly when a start delay was specified.
Spec change: https://dvcs.w3.org/hg/FXTF/rev/5544ee343a32

The procedure for calculating the active time for zero duration was also fixed after the
above change revealed that the formula was incorrect.
Spec change: https://dvcs.w3.org/hg/FXTF/rev/c8696c3d78d8

Unit tests were updated to cover the API changes and a new test was added to verify zero
duration cases.

BUG=240653

Review URL: https://chromiumcodereview.appspot.com/19603005

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