Gracefully allow missing data in JQManagedJob->fromArray().
Refactor retry() and prevent runaway mulligan retries. Add tests.

Add JQManagedJob->restart() to allow manual restart of job irregardless of retry status.