Use default usage message

It's free so we may as well use it.
Add flag to print usage information

The `-help` flag is overridden by `go test` and doesn't display the
available flags, so add a new `-usage` flag that displays usage
information (including flags).
Merge pull request #90 from alphagov/75804242-usage-flag

[#75804242] Add flag to print usage information
Alphabetise command-line flags
Add flag to specify vendor-specific tests to run

Different vendors supply different headers, so we need to vary the tests
accordingly.

Add a new command-line flag, `-vendor`, which takes a string denoting
the name of the vendor against which we're running the tests.
Add message as constant for vendor-specific tests

When a vendor-specific test does not apply to the vendor specified, we
need to skip that test. Add a message as a constant so that we can
re-use it as necessary.
Repurpose X-Served-By test to be generic

Repurpose the `X-Served-By` test such that it supports multiple vendors,
not just Fastly.

Also, add support for Cloudflare's `CF-RAY` header.
Rename `testForFastly` to `vendorFastly` etc

To make it clearer that we are referring to vendors.
Adjust check based on new vendor flags

Amend `TestFailoverErrorPageAllServersDown()` to use to the new vendor
flags.

Defaults to Varnish's "Guru Meditation" error message as that's what is
used by the mock tests.
Remove stringContainsOneOf function

This is no longer being used as of the previous commit.
Add -edgeHost flag to examples

It's the most common use case (i.e. running against a real CDN rather
than the mocks), so we should include it in the examples.
Explain how to run the tests against Vagrant
Feature-flag ClientIP test for Cloudflare

Use the new vendor flag so that `TestReqHeaderXFFCreateAndAppend()` is
not run if we're testing against Cloudflare, as we know they do not
yet support this feature.

Also, tidy the sort order of the variable definitions and use `:=` for
assigning `sentHeaderIP`.
Fail test when no vendor implementation known

Fail, rather than skip, a test if we haven't written test logic specific
to that vendor.

The aim of this is that new vendors will causes the tests to fail,
meaning that either:

a) the test should be modified to skip that test if the feature is
_known_ not be supported by the vendor, or,

b) the test should be modified to support the vendor's unique
implementation of the feature if it's supported, or,

c) the vendor CDN configuration needs modification to make the tests
pass

This will allow us to distinguish between features we know to be
unsupported, features that are supported but we don't yet test correctly
for, and features which have not yet been correctly configured in our
CDN account.