triggering shutdown by setting a redis flag

**Problem Statement**
We use rq on heroku and their way to the shutdown the worker that runs rq does not ensure a safe shutdown.
   
From Heroku docs:  https://devcenter.heroku.com/articles/dynos
```
When a worker is stoped by ps:scaling or pushing out a new release or any heroku operation.
The dyno manager sends the working SIGTERM

The process then has 10 seconds to shut down gracefully.

If the process is still alive -- then SIGKILL is then sent
```

So if a job takes more then 10 secs (which many of our jobs do) -- we are going to be out of luck.  The job will be killed in a potentially unsafe point

So we needed an approach where we could set a flag on redis, that the rq worker can ping.

I introduced the key:  'rq:worker:pause_work'  Which any process can set.  If the worker sees that it has been set -- it hops into a pause loop, until the key is deleted.

In Worker#work at the top of the `while True:` block

``` python
    try:
        before_state = None
        notified = False

        while Worker.paused() and not self.stopped:

            if burst:
                self.log.warn('Paused in burst mode -- exiting.')
                self.log.warn('Note:  There could still be unperformed jobs on the queue')
                raise StopRequested

            if not notified:
                self.log.warn('Stopping on pause request REALLY.')
                before_state = self.get_state()
                self.set_state('paused')
                notified = True
            time.sleep(1)
    except StopRequested:
        break
```


This was the one change that I did not do.

On first execution -- the state is `starting` but upon further execution the state can be something else.  For example `dequeue_job_and_maintain_ttl` sets state to `idle`

I think this is the safest approach.  But feel free to override me