geard: be more careful removing jobs

When a client connection is lost and jobs are being removed, there
is a race condition where if the worker completes the job first,
it may be removed from the list of associated jobs before the same
thing is done due to the client disconnect.  In all cases, wrap
job deletion in try/except calls.

Additionally ensure that not only running jobs, but also queued jobs
are removed in such cases.

Change-Id: I24c3af3fa7fd068bec29af90d7ff42a59b21ea94