Refactor olm-session-updater to enable to conditionally skip database content update
Summary:
This differential refactors olm-session-updater so that oit takes optional lambda that tells, based on post encryption content, whether session state at the database should be updated. This will come in handy in a case when we are not sure
whether we will send encrypted data to somebody until we see encrypted content. An example will is teh case of large notifications. Before we decide whether we want to send full notification paylaod or blob ash with encryption key we must encrypt
notification. But if we encrypt notification, then decide to upload it to blob service and send to the client encrypted AES key with blob hash, the client will have to skip one olm key and will keep skipped key forever. However with the changes
introduced in this diff we can easily pass lambda that tells olm-session-updater not to update olm session if notification after encryption is larger than limits. This way we will encrypt AES key and blob hash with the same olm key that we initially
used to encrypt original notification and the client won't have to skip any key.
Test Plan: Currently this feature is not used so the test plan is to check that encrypted notifications work properly without any issues
Reviewers: tomek, bartek, kamil
Reviewed By: bartek
Subscribers: ashoat
Differential Revision: https://phab.comm.dev/D8588