Make sure AgentServer actually executes shutDown

Also install signal handlers so if they block, and you
hit control-c again, we make sure it dies.

Normally, if Runtime.exit() gets called it runs teardown
handlers and the like, but if you call .exit again while
this happens, you get bupkis.  That's why we call halt().
Merge pull request #205 from spotify/drewc/callshutdown

Make sure AgentServer actually executes shutDown