Web Animations API: Sort keyframes by offset

EffectInput::convert() was not sorting keyframe offsets properly.
This change updates the conversion code to match spec behaviour [1].

Keyframes that are not loosely sorted and have keyframes with missing
offsets will now throw an InvalidModificationError DOMException.

Null offsets are now properly ignored instead of being interpreted as 0.

Original patch by ericwilligers [2].
This patch uses ScriptValue instead of v8::Value.

[1] https://dvcs.w3.org/hg/FXTF/diff/b5b53c344189/web-animations/index.html
[2] https://codereview.chromium.org/251463003/

BUG=363569

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

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