Sort room list by activity
Sorts the rooms in the sidebar by activity. Activity for this purpose is based
on the greatest origin_server_ts
field of any loaded message in that room.
This information is provided via the Room::latest_change
method.
If no event is loaded for a room, the kind-of-random, but stable ordering of the
RoomList
’s IndexMap is kept between rooms. When backfilling is implemented,
this change will simply do The Right Thing™.
There are also three loosely-related refactoring/minor commits in this MR.
Fixes #798 (closed).