Workers should cleanly shutdown quickly

The worker handles SIGHUP and SIGTERM, but it only affects the
job polling loop and not the processor. This patch passes the
stop notification to the processor so it can set the job to
TIMED_OUT and quickly and cleanly shut down rather than waiting
for the current job to finish processing.
Merge pull request #303 from rackerlabs/rm5870-graceful-shutdown-rebase

Workers should cleanly shutdown quickly
implements qonos.job.failed notification

- qonos.job.failed notification is sent only if the following criteria
  is satisfied.
 - Whenever a job status is updated to ERROR/CANCELLED
 (AND)
 - if the number of retries exceeds the max retry count (OR) if the
   current time exceeds the  hard_timeout.
- qonos.job.failed notification includes the error message to the job
  payload if it is available while updating the job status.
- modified existing tests to test the send qonos.job.failed notification
  scenario.