encrypt and decrypt messages with linear MLS group
merge multiple forks and decrypt
add/remove users with linear MLS group
add/remove users with forked MLS group
may need to (temporarily?) fork OpenMLS, or else write our own implementation
[ ] trial implementation in a client (Hydrogen?/Element Web?)
possible synapse changes
[ ] update proto-MSC and publish as an MSC
[ ] add preliminary support to Rust matrix-sdk-crypto
[ ] add support via matrix-sdk-crypto to clients
[ ] support re-decryption of historical messages (MLS requires throwing away keys once they are used. But to re-decrypt messages, we need to keep them around. Since OpenMLS implements the MLS behaviour, this will require changes)
[ ] determine necessary information for key forwarding/key backup
[ ] key forwarding test
[ ] update key backup endpoints as needed
[ ] external commits (being able to send a message to the group before you've been added by a member)