When the JS SDK encounters a new room it will emit a flurry of events for things
like state and room members. Refreshing the room list on each event is bad for
performance. This is okay initially because the room list is only shown after
the first sync, but when getting archived rooms it locks up for 15-30s as it
thrashes. Add a 1s cap to refreshRoomList() which means that it will refresh
*AT MOST* once every second. If it has been >1s since the last refresh it will
immediately refresh. If it has been <1s it will wait the difference.
Call /forget when the forget button is clicked. Number of shortcomings:
- We need to lazy load the historical list (atm we never get the list of left
rooms; things only go into that list if you leave the room whilst running)
- Once a room is forgotten we need to physically nuke it from the JS SDK.
- Need icon for forget room.