Any negative number should cause a job to live forever in a registry.

While the documentation explicitly mentions ttl=-1, this matches better the behaviour of the job.cleanup() method.
Rename registry timeout to registry ttl

This matches job.cleanup() better and (I think) makes the purpose slightly clearer.
Allow maximum job age to be specified when cleaning up or getting expired jobs from a registry.

This ensures that all jobs cleaned from a started registry end up in the failed queue.