Don't create files for upload while directly connected to contact
This branch updates the MailboxUploadWorker to pause the creation of new files while we're directly connected to the contact. If an upload is in progress when we connect to the contact, it will be completed.
This branch also attaches extra information to MessageSharedEvent so that the receivers of that event (DuplexOutgoingSession and MailboxUploadWorker) can decide whether to act on the event. This should avoid unnecessary DB queries when a message is shared and there are multiple sessions and/or workers waiting for data to send.
Closes #2352 (closed)