Implement room aliases

This is slightly safer with the `Rooms.aliases[alias] !== room` check - now this should work as long as state isn't inconsistent.

Still, though, it'd be safest to store `room.chatRoomData.aliases.indexOf(alias)` and make sure it's `>= 0` before proceeding.