Fix AnimationBase::fractionalTime() to handle a scale of infinity

When an animation is sampled at a fractionalTime of 1,
KeyframeAnimation::fetchIntervalEndpointsForProperty() selects the last
keyframe for both the 'previous' and 'next' keyframes to be used for blending.
This results in a scale of infinity and AnimationBase::fractionalTime()
resturns a value of -nan.

When -nan is passed to the default timing function, we hit the ASSERT() in
UnitBezier::solveCurveX(). If a linear timing function is used, the calculated
property value is -nan, and we hit the ASSERT() in the CSSPrimitiveValue
constructor.

This change fixes the problem by ignoring the scale in
AnimationBase::fractionalTime() in this case. This is safe because the
fractionalTime is always zero once the offset has been accounted for, so the
correct result is zero.

R=dstockwell

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

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