Persistent job queue, derivative of android-priority-jobqueue.

re-running the job without first checking that all job requirements are still satisfied seems like it could lead to multiple quick ineffective retries and then failure in cases like network availability