Implement DMActivityHandler
Summary: This differential implements DMActivityHandler component. Its role is the same as ActivityHandler but it works thick threads. I opted for new compoment instead of modifying ActivityHandler since we only need one component for thick threads while there are many ActivityHandlers (one for each keyserver). Therefore I couldn't see an easy way to reuse ActivityHandler.
Test Plan:
- Create thick thread between users A and B.
- Log in as user A on two devices (on web and on native) and log in as user B on third device.
- Send message from B to A. Open the thread as A on web. Ensure rescinding happens on native.
- Open the thread as A on native. Change opened thread as A on web. Send messages from B to A. Ensure that thread remains read on web.
Reviewers: tomek, kamil, inka
Reviewed By: tomek
Subscribers: ashoat
Differential Revision: https://phab.comm.dev/D13246