code: function(base, child, extra) {
      function F() {}
      F.prototype = base.prototype;
      child.prototype = new F();
  
      if (extra) {
        ICAL.helpers.extend(extra, child.prototype);
      }
    }
docs: Poor-man's cross-browser inheritance for JavaScript. Doesn't support all
  the features, but enough for our usage.
  
  @param {Function} base     The base class constructor function.
  @param {Function} child    The child class constructor function.
  @param {Object} extra      Extends the prototype with extra properties
  and methods