constructAddonInstance(parent, project) {
    let start = Date.now();

    let AddonConstructor = this.getAddonConstructor();

    let addonInstance;

    try {
      addonInstance = new AddonConstructor(parent, project);
    } catch (e) {
      if (parent && parent.ui) {
        parent.ui.writeError(e);
      }

      const SilentError = require('silent-error');
      throw new SilentError(`An error occurred in the constructor for ${this.name} at ${this.realPath}`);
    }

    AddonConstructor._meta_.initializeIn = Date.now() - start;
    addonInstance.constructor = AddonConstructor;

    return addonInstance;
  }
Construct an addon instance.

NOTE: this does NOT call constructors for the child addons. That is left to
the caller to do, so they can insert any other logic they want.

@private
@method constructAddonInstance
@param {Project|Addon} parent the parent that directly contains this addon
@param {Project} project the project that is/contains this addon