Web Animations: Extract an API for servicing animations

This is mostly a code shuffle making animation servicing less intrusive on
the rest of the system.

Also:
* If necessary, waits for a compositing update before starting animations
  on the compositor (otherwise the appropriate composited layers might not
  have been created).
* Forces a layout (and compositing update) after servicing frame callbacks
  when running against the test proxy.
* Addresses concerns raised in r161892 about adding too much logic to Document.
* Avoids checking whether there is an animation that could benefit from
  compositing in the CSSAnimationUpdate as we know that the update will have
  been applied by the time the compositor update takes place.

Note: These changes are guarded by the WebAnimationsCSS runtime flag.

BUG=298211,321460

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

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