STORM-183: supervisor and worker should rugister with runtime for shutd...

...own hooks. Supervisors should use kill -15 before kill -9 to allow workers to perform cleanup.
I'm not sure that this shutdown hook will be called in all cases.  Most places the worker code calls Runtime.halt on error, which does not call any of the shutdown hooks.  It just exits.  I think that was done because shutdown hooks can lock up, and if they do the process does not exit.  So we could get zombie processes.  Typically I have seen this addressed by installing a shutdown hook that will let the other shutdown hooks run for a maximum amount of time, at which point it calls Runtime.halt.