Use httptest HTTP server - better client handling

We have a need to stop the HTTP server, so that we can
test the behaviour when backends are down. Previous work
using net/http have highlighted that we need to close off
client connections, as Keep-Alive is a factor.

A previous PR -- https://github.com/alphagov/cdn-acceptance-tests/pull/48
tackled this via sending a 'Connection: close' header, but in practise this
has opened up another set of problems and does not reliably work with
'multiple CDN nodes'

As a result, this commit starts the ball rolling again, but using the
httptest HTTP server, which records client connections and provides
methods to close them off.
Add Stop() method to CDNServeMux

This calls the httptest server.Close(), which as well as stopping the
listener also drops any existing connections.

In contrast to https://github.com/alphagov/cdn-acceptance-tests/blob/267f2f8957641fb07141d4d74055fa82ede32a9b/helpers_test.go#L84
we now see 'EOF' as the client error rather than 'connection refused'. This may need further
investigation later - I would expect 'connection refused' to be the correct error.
Add "All backends are down" test
Use request helpers in ErrorPageAllServersDown

These were introduced in master before this test was originally written.
Move CDNServeMux.Stop() and rename var

Relocate this method next to the other functions on CDNServeMux and rename
the pointer variable to match the other functions.
Always bomb out if failures during backend startup

If we fail to start our backends correctly, the tests will
error in non-intuitive ways.

As a result, consider any failure in starting up the backends
as Fatal.
Reset state after Stop() test
Refactor StartBackendsInOrder

Set a standard header of Backend-Name, which then means we do not
need to set a handler during the server startup - the default is sufficient
Merge pull request #53 from alphagov/httptest_server

Stoppable HTTP Servers