handle_failure method gets access to queue from which the failing job originated

This allows failure handling based on the queue the job was scheduled in.

Example:

FailureQueue = QC::Queue.new('second_try')

def handle_failure(queue,job,e)
  if queue == FailureQueue
    # The job failed for good, notify airbrake or whatever
    # ...
  else
    # Reschedule the job in the second_try queue
    FailureQueue.enqueue(job[:method], *job[:args])
  end
end