code: function registerWidget(name, constructor) {
    if (typeof name !== 'string' ||
      typeof constructor !== 'function' ||
      typeof constructor.getTemplate !== 'function' ||
      constructor.prototype.type !== 'Widget') {
      throw 'Invalid arguments passed for registerWidget';
    }
    widgets[name] = constructor;
  }
docs: Public function to register Widgets for the template
  These are similiar to child views, but don't have their own views or models
  These are transformed on the template during the attach phase
  
  @param  {String}   name        Mustache key to intercept
  @param  {Function} constructor Widget constructor to inject