updateComponent(attr, attrValue, clobber) {
    var component = this.components[attr];
    if (component) {
      // Remove component.
      if (attrValue === null && !checkComponentDefined(this, attr)) {
        this.removeComponent(attr, true);
        return;
      }
      // Component already initialized. Update component.
      component.updateProperties(attrValue, clobber);
      return;
    }

    // Component not yet initialized. Initialize component.
    this.initComponent(attr, attrValue, false);
  }
Initialize, update, or remove a single component.

When initializing, we set the component on `this.components`.

@param {string} attr - Component name.
@param {object} attrValue - Value of the DOM attribute.
@param {boolean} clobber - If new attrValue completely replaces previous properties.