Rewrite CSSAnimationData{,List} to fix getComputedStyle issues

This patch replaces the old structures for storing computed values for animation
and transition properties with simpler structures. Previously we had the class
CSSAnimationData basically being a container for the different animation and
transition properties, and CSSAnimationDataList being a vector of these. This
patch re-arranges things so we store vectors of the individual animation and
transition properties. We also remove the enums for animation-direction and
animation-fill-mode and replace these with the enums on Timing. In the new
structure, CSSAnimationData and CSSTransitionData take the place of the previous
CSSAnimationDataList, both deriving from CSSTimingData for shared properties.

As a result of the re-arrangement, we can simplify a lot of the surrounding
logic (about -400 LoC net). The steps for adjusting animations and transitions
are removed and instead inlined in the logic using the values (mainly repeating
shorter lists to match animation-name / transition-property), and as a result
calls to getComputedStyle will return the values that the user has specified
instead of adjusted values (this matches the spec and firefox). We've also
removed the logic which explicitly removes duplicate properties from the
transition-property list, since this should be an uncommon case and we
will handle this correctly in CSSAnimations.cpp anyway.

Note that there are still other problems with getComputedStyle and inline style,
e.g. invalid property names in a transition property list should parse (bug
304020), and having e.g. e.style.transition='left, right' results in an invalid
value for e.style.transitionDuration ('initial, initial').

BUG=368985

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

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