Improved shutdown behaviour
Improve the state mutation of SmokeHTTP1Server and to shut down the server when the surrounding application is closing. Provide the ability to execute closures when the server is shutdown.
Note: This is a breaking change - SmokeHTTP1Server.startAsOperationServer() will no longer block until the server shuts down. SmokeHTTP1Server.waitUntilShutdown*() will need to be called to block a thread until the server is shut down.