instantiate a job instead of fetch

this removes the need for the depended on job.id already being saved
no need for that save anymore
added job ttl to queue.enqueue()
Ensure the FinishedJobRegistry honors an 'infinite' result_ttl of -1
Merge pull request #455 from negz/spotify-freeze

Ensure the FinishedJobRegistry honors an 'infinite' result_ttl of -1
Merge pull request #451 from conslo/depend-on-unsaved-job-ids

Depend on unsaved job ids
renaming job.job_ttl to job.ttl
calling self.cleanup to set job expiration
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.
test for workers equality
implement __eq__ and __hash__ for workers
comments
2.6 compatible set syntax
Merge pull request #456 from negz/registry-cleanup-race

Registry cleanup race
Merge pull request #453 from glaslos/job_ttl

TTL for jobs
Merge pull request #462 from conslo/worker-hash

Worker hash
merging master