Safe fetching a deleted job removes the deleted job from queue.

Hi Vincent,

Currently, ``queue.jobs`` silently drops "dead" jobs. This patch removes "dead" jobs from queue whenever it sees one.

The motivation behind this patch is that queues start showing wrong job counts whenever I delete something on ``django-rq``.

Related to this, I also modified ``job.cancel`` to remove itself from related queue on https://github.com/selwin/rq/commit/f316f35793430d85ca8fd981e37d76f030253150 so the probability of this happening should be much lower.