Set the job variable before running tests.

If a test is interrupted, it is checked to see if they have a 'job'
associated with them and if so the job is purged.  However if a test
does something like:
  self.job = Job().wait()
the interruption will occur while it is waiting for the results and
the self.job is not set at this time, so it will not be purged.
Handle the kill_worker message in job_coordinator.
Merge pull request #438 from pooya/shayan/fix_job_interrupt

Shayan/fix job interrupt