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.


Should `Listener` be unexported as `listener` now that `Stop()` is a method on the struct? To make it clear that you don't need to interact with it directly.