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.
I like moving the save subclass out of the fragment, but this method seems kind of out of place here.