Server.RestartAsync improvements

* Added a programmable retry interval
* Changed the method for waiting for the server to go down.
** Add a server message: "restart _requrested"
** Request a restart
** Fetch restart_requested message until we receive an
HttpRequestException
** Asser that the cause of the HttpRequestException is a connection
failure
** All other exceptions propagate out of the RestartAsync method