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 got not lazy and just rewrote it to be asynchronous since it should be that way :P