job.cancel() should remove itself from queue

There shouldn't be anything too controversial here. Will merge this PR this weekend unless there's any objections. /cc @nvie

Fixes #361