* Initial "join room" feature.
* React correctly to remotely joined rooms.
* Leaving rooms implemented both locally using the room menu
in nheko, and reacting properly when leaving a room remotely
from another client.
Each HistoryView maintains a list of pending events. Each pending
message is validated from the homeserver with either the returned
EventId or the body of the message.
Currently there is no support to remove invalid messages.
Also some small refactoring:
- ChatPage doesn't know about the message being sent. The message
delivery is solely handled by HistoryViewManager.
- Nick coloring function moved to HistoryViewManager.