Cleaner shutdown

Provide a shutdown mechanism which waits until IIn-flight reqests are drained.
I still think we should keep the above block in.

We should also be forcing the close of the connections via the header, once we've received the TERM/INT signal, otherwise I'm not sure the ELB will stop sending requests.