Call 'exhausted' worker method after retries

When the maximum number of retries is hit and the message is about
to be thrown away, give the option of allowing the worker to say
goodbye by defining an 'exhausted' method on the worker.
'exhausted' changed to 'retries_exhausted'

Additionally, any errors raised during retries_exhausted hook
are logged and dropped before resuming original control flow.
Documentation update 'exhausted' to 'retries_exhausted'
Merge pull request #780 from EasyGive/master

Hook to process events after a job fails all retries