adding a worker_process_shutdown signal in celery by overloading the new API in billiard

requires:  https://github.com/celery/billiard/pull/76

I noticed that running:
> nosetests test_worker:test_WorkController.test_process_shutdown_on_worker_shutdown
succeeds. However, it was hanging when I tried to run the whole suite -- perhaps I'm going about testing somehow incorrectly? 

Anyhow, I've reissued this request from a separate branch because my master branch now has some other custom changes related to long-running tasks.