message: Don't query the users.db for every IRC message
diff: @@ -40,6 +40,9 @@ function IrcHandler(ircBridge) {
  this.pmRoomPromises = {
  //'$fromUserId $toUserId' : Promise
  };
  +
  + // Map<string,bool> which contains nicks we know have been registered/has display name
  + this._registeredNicks = Object.create(null);
  }
  IrcHandler.prototype.onMatrixMemberEvent = function(event) {
  @@ -446,7 +449,18 @@ IrcHandler.prototype.onMessage = Promise.coroutine(function*(req, server, fromUs
  return;
  }
  - let virtualMatrixUser = yield this.ircBridge.getMatrixUser(fromUser);
  + const nickKey = server.domain + " " + fromUser.nick;
  + let virtualMatrixUser;
  + if (this._registeredNicks[nickKey]) {
  + // save the database hit
  + const sendingUserId = server.getUserIdFromNick(fromUser.nick);
  + virtualMatrixUser = new MatrixUser(sendingUserId);
  + }
  + else {
  + virtualMatrixUser = yield this.ircBridge.getMatrixUser(fromUser);
  + this._registeredNicks[nickKey] = true;
  + }
  +
  let matrixRooms = yield this.ircBridge.getStore().getMatrixRoomsForChannel(server, channel);
  let promises = matrixRooms.map((room) => {
  req.log.info(
  