Cleanup and refactor the server shutdown.
* bzrlib/tests/http_server.py:
(TestingHTTPServerMixin): Implement a proper server() method able
to clean after itself and interruptible by calling shutdown() from
another thread.
(HttpServer._get_httpd): The server has already got the address
from the socket, just get it from there.
(HttpServer._http_start): Delegate the service to the server
itself.
(HttpServer.tearDown): Call server.shutdown() since that's more
appropriate.