Test that for X-Served-By is set by Edge

We check for the Fastly format of cache-server1234-LOC, which is going
to change between providers, but this at least starts that documentation
going.

Also, check for existance of this field.
Rename Test and regexp to highlight Fastly-specific

This test is designed to be fastly specific, the pattern expected
of X-Served-By is not likely to be followed by other CDN providers.

Rename the Test (so that we can do -run Fastly) and regexp var name
accordingly.
X-Served-By test does not need to talk to origin

We are not testing origin-specific behaviour, just that the
provider sets an X-Served-By header matching our expectations.

This means that this test can now run against a live environment.
Implement TestNoCacheHeaderSetCookie() test

Send three requests. Origin keeps track of how many requests it has received
and adds a `Set-Cookie` header to each response. Then we assert that the
quantity of send and received requests are the same.

This may be improved to test response bodies in a subsequent commit.
Test resp bodies in TestNoCacheHeaderSetCookie()

To ensure that each response is unique.

Although not normal behaviour, there is no guarantee that edge won't send a
request to origin but still return a cached response. So checking the
quantity of requests received may not have been sufficient.
Relocate common setup - vars, flags, init()

Move any setup that is common to all tests - which includes setting global
variables, parsing CLI flags, and doing the pre-flight health check - to a
separate file called `common_setup_test.go` so that it's logically
separated.

The naming of this file seems to have no effect on the setup being performed
before running any of the tests. Presumably because it compiles all test
files that belong to the "main" package.
Move helper tests to helpers_test.go

So that they are logically separated from the actual helper code and match
the normal pattern of `foo_test.go` which tests `foo.go`.

I'm also removing the wrapper which called these individually - now that
they are in a `_test.go` file they will get picked up correctly themselves.
They can still be opted in with `-run Helper`. Plus we'll get the correct
errors if just one of them fail.
Merge branch 'master' into served_by_node_id
Mock Fastly X-Served-By behaviour in VCL
Merge pull request #11 from alphagov/served_by_node_id

Test that for X-Served-By is set by Edge
Merge pull request #20 from alphagov/origin_set_cookie

Implement TestNoCacheHeaderSetCookie() test
Merge pull request #22 from alphagov/relocate_setup_and_helper_tests

Relocate common setup - vars, flags, init()
[#14] Separate out failover tests

These are the least likely to be re-used; either by our other services or by
third-parties using our open source code. So don't clutter the main test
file with them. Since they all have consistent naming they can be selected
with `-run TestFailover`.
[#14] Separate out cache tests

These all test that a response *is* cached.
[#14] Rename cache tests

So that they can be selected with `-run TestCache`.
[#14] Seperate out no-cache tests

These all test that a response is *not* cached.
[#14] Rename no-cache tests

So that they can be selected with `-run TestNoCache`.