Cleaner shutdown

Provide a shutdown mechanism which waits until IIn-flight reqests are drained.
Do we really need to do this? Maybe we do for total completeness.

Once we start failing the health check outstanding requests should terminate within some timeout at the ELB. 

Mostly just worried about the overhead (cpu time).