Retry timeouts a few times with exponential back off

Currently, jobs are buried and never able to run again after 1 timeout.

This PR gives jobs a few extra opportunities to run, with an exponential delay that starts at 1 hour.

Does this work?

The reason [burying of repeated failures / timeouts happens in the broker](https://github.com/99designs/cmdstalk/blob/5843dc3ba2954a111a5d98fce3420af9edcd7c35/broker/broker.go#L108-L132) is because the reservation of a job expires the moment it times out, meaning it's already been released, and perhaps already picked up for processing by another broker goroutine. So I would expect `job.Release(delay)` to fail.

I think this handling needs to happen in the section of `broker.go` linked above.