Make keyframe effects

As per discussion, let's write something like (I changed the typeof check to disallow numbers, I assume this was only for offset?):

var keyframeEffect = effectInput.map(function(originalKeyframe) {
  var keyframe = {};
  for (var member in originalKeyframe) {
    if (!originalKeyframe.hasOwnProperty(member))
      continue;
    var memberValue = originalKeyframe[member];
    if (member == "offset") {
      if (memberValue !== null) {
        memberValue = Number(memberValue);
        if (!isFinite(memberValue))
          throw ExceptionOfSomeParticularType;
      }
    } else if (typeof memberValue != 'string') {
      // FIXME: If the value isn't a string, this sets it to the empty string. Should do something better.
      memberValue = '';
    }
    keyframe[member] = memberValue;
  }
  return keyframe;
}

Then we can replace offsetGiven(offset) with offset == null everywhere, and the checks in the loop (L83) need to be moved to before returning (e.g. return keyframeEffect.filter(function(keyframe) { return keyframe.offset >= 0 && keyframe.offset <= 1; });