Put a limit on the time it takes to shut down on a signal.

Good point on the bounded shutdown; also makes sense for the SIGINT (^C) case.

This PR sets a time limit of 7 seconds for all outstanding requests to finish after a signal is received.