In-app media previews

`MediaPreviewActivity`, currently only supporting images, will be used to show attachments in-app in order to avoid the contents being exposed unencrypted.

Refactored saving attachments logic into a redone `SaveAttachmentTask` to be used in more than one place.
...but now it's not clear that the helper methods are blocking calls.