message: make users available in member by requesting them from client right before
  before this was already foreseen, but memberDict wasn't being refreshed
  as it's only used in roomMembers(), I got rid of memberDict as well
diff: @@ -32,7 +32,6 @@ module.exports = React.createClass({
  displayName: 'MemberList',
  getInitialState: function() {
  - this.memberDict = this.getMemberDict();
  this._mounted = false;
  const cli = MatrixClientPeg.get();
  @@ -196,8 +195,6 @@ module.exports = React.createClass({
  _updateList: new rate_limited_func(function() {
  // console.log("Updating memberlist");
  - this.memberDict = this.getMemberDict();
  -
  const newState = {
  members: this.roomMembers(),
  };
  @@ -206,15 +203,15 @@ module.exports = React.createClass({
  this.setState(newState);
  }, 500),
  - getMemberDict: function() {
  - if (!this.props.roomId) return {};
  + getMembersWithUser: function() {
  + if (!this.props.roomId) return [];
  const cli = MatrixClientPeg.get();
  const room = cli.getRoom(this.props.roomId);
  if (!room) return {};
  - const all_members = room.currentState.members;
  + const allMembers = Object.values(room.currentState.members);
  - Object.values(all_members).forEach(function(member) {
  + allMembers.forEach(function(member) {
  // work around a race where you might have a room member object
  // before the user object exists. This may or may not cause
  // https://github.com/vector-im/vector-web/issues/186
  @@ -226,14 +223,13 @@ module.exports = React.createClass({
  // the right solution here is to fix the race rather than leave it as 0
  });
  - return all_members;
  + return allMembers;
  },
  roomMembers: function() {
  const ConferenceHandler = CallHandler.getConferenceHandler();
  - const allMembersDict = this.memberDict || {};
  - const allMembers = Object.values(allMembersDict);
  + const allMembers = this.getMembersWithUser();
  const filteredAndSortedMembers = allMembers.filter((m) => {
  return (
  m.membership === 'join' || m.membership === 'invite'
  