Opens the analyser, loads database etc

@async
function() {
      var t = this;

      var p;
      if (!this.__opened) {
        this.__opened = true;

        var resManager = null;
        if (this.isProcessResources()) {
          resManager = new qx.tool.compiler.resources.Manager(this);
        }
        this.__resManager = resManager;
        p = Promise.all(
            [ 
              util.promisifyThis(t.loadDatabase, t),
              new Promise((resolve, reject) => {
                if (resManager) {
                  log.debug("Loading resource database");
                  return util.promisifyThis(resManager.loadDatabase, resManager)
                    .then(resolve)
                    .catch(reject);
                }
                resolve();
                return undefined;
              })
            ]);
      } else {
        p = Promise.resolve(); 
      }

      return p.then(() => {
          log.debug("Scanning source code");
          return util.promisifyThis(t.initialScan, t);
        })
        .then(() => {
          log.debug("Saving database");
          return t.saveDatabase();
        });
    }