Web Animations: Introduce ActiveAnimations and AnimationStack

The list of active animations has been moved into a new class,
ActiveAnimations and is now grouped by timeline, element pairs in
AnimationStack. The name 'Stack' relates to the stack of animations
which is formed for each element+property pair when animations are
composited together.

For now there is one AnimationStack formed per Timeline, in future if
inherited timelines are introduced it's likely the AnimationStack will
be inherited from any root timelines. I expect that there will only be
two root timelines, the animation timeline (the 'document timeline'),
and a special timeline for CSS Transitions (due to a different
application level in the style cascade).

A base class, Timeline, will soon be factored out of DocumentTimeline
and a new timeline for CSS Transitions will be introduced.

BUG=232273

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154733 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Introduce toSVGPatternElement(), use it

As a step to change static_cast with toSVGXXX, static_cast<SVGPatternElement*> can
be changed with toSVGPatternElement().

BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154734 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move basic virtual methods from Element.cpp to Element.h

This matches the normal style and also lets the compiler make certain callers
inline if the class is FINAL. This is part of the quest to make Element.cpp
shorter and Element.h more self documenting (ex. default virtual boolean methods
have the values be obvious).

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

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