Mock CDN in a Vagrant VM using Nginx/Varnish

I found this useful to write and debug new tests while Mike was running
tests against the real service. Some of the behaviour we want to test is
just standard Varnish behaviour. We can mimic some other features with
minimal config changes.

The variable `$::ipaddress_vmhost` contains the IP address of the VM's host
on the other end of the private network - where `go test` would be running.

We'll need to be a careful about breaking this functionality when we
introduced SSL for backends. I'll leave a note in the issue.
Make TestProtocolRedirect() work in mock

Extract the relevant parts from our Fastly config to mimic HTTP->HTTPS
redirects and set a header in Nginx where we're doing SSL termination.

We need to set `proxy_redirect` and restate the default because the argument
to `proxy_pass` doesn't have the same protocol as the `Location` header.
Make TestRestrictPurgeRequests() work in mock

Extract a simplified and slightly modified version of the PURGE handling
code from our Fastly config. We should never match the IP that's on the
whitelist.
Merge pull request #12 from alphagov/vagrant_varnish_mock_cdn

Mock CDN in a Vagrant VM using Nginx/Varnish