add PushDownloaderJob

This fixes #1264 

If a pending attachment download is interrupted, it will be resumed as soon as the network connection is established again. The job is persistent, so the download will be resumed after an app restart as well.

Until now `JobManager.setEncryptionKeys()` was never called, so encrypted jobs were never loaded to the JobQueue from the database. I put the call to `setEncryptionKeys()` in `RoutingActivity.onNewMasterSecret()`, I'm not sure if this is the best place for it?
Yeah, could be good to be able to start the download again manually after it failed 20 times. But then we should display a hint or something that the download failed. Do we already have something similar which we could use?
Perhaps this should be done in a second PR, I don't know how complex this will be...