Stoppable HTTP Servers

This adds support for stopping a given HTTP Listener, ready for use in the Failover tests. 

Two steps are required due to Varnish/Edge keeping persistent connections open:

* Close the listener, preventing any new connections.
* Switch the handler to return 'Connection: close' on subsequent requests. Varnish respects this and closes the connection.


Could the `fmt.Sprintf("%s", err)` be replaced with `string(err)`?