Automatically manage the cancellation of jobs with RAII.
Avoid calling JobClient::RemoveJob from ~JobHandle, as that means it *is* just being removed.
Merge pull request #2758 from lwho/job_auto_cancel

Merged (#2758)