caching failed attachment downloads

`AttachmentDownloadJob` is just restarting failed jobs if they fail with `PushNetworkException`.
Should hopefully finally close #1264 

// FREEBIE