Web Animations: Use StringKeyframes for element.animate()

This patch refactors element.animate()'s use of KeyframeEffectModel to
be based on String keyframes instead of AnimatableValue keyframes.
element.animate() is no longer responsible for creating snapshots of
the keyframe values, this logic is now pushed into
StringPropertySpecificKeyframe::createInterpolation() where we can work
on removing the use of AnimatableValues in favour of more primitive
InterpolableValues.

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

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