code: function start(callback, duration, element) {
          duration = duration > 0 ? duration : Number.POSITIVE_INFINITY;
          var id = ++counter;
          var start = +new Date;
          loops[id] = function() {
              if (loops[id] && +new Date - start <= duration) {
                  callback();
                  if (loops[id]) {
                      requestFrame(loops[id], element);
                  }
              } else {
                  delete loops[id];
              }
          };
          requestFrame(loops[id], element);
          return id;
      }
docs: Function: start
  Executes a method with <requestFrame> in series for some
  duration.
  
  Parameters:
  callback - {Function} The function to be called at the next animation frame.
  duration - {Number} Optional duration for the loop.  If not provided, the
  animation loop will execute indefinitely.
  element - {DOMElement} Optional element that visually bounds the animation.
  
  Returns:
  {Number} Identifier for the animation loop.  Used to stop animations with
  <stop>.