Stoppable HTTP Servers

This adds support for stopping a given HTTP Listener, ready for use in the Failover tests.

It is a reimplementation of #48, using the net/http/httptest HTTP Server rather than the regular net/http one. httptest keeps a record of client connections, and its Close() method shuts these down - exactly the functionality we need.


Unsure whether `log.Fatal` is too nuclear.