[#19] Add some more unimplemented NoCache tests

These assert the standard behaviour of any CDN. Mostly cribbed from the
default Varnish configuration:

https://github.com/varnish/Varnish-Cache/blob/3.0/bin/varnishd/default.vcl
Implement TestNoCachePOST

This looks very similar to TestNoCacheHeaderSetCookie. I suspect most of the
other tests in this category will.
Add testThreeRequestsNotCached helper

Since all of the NoCache tests are going to follow the same pattern of
sending three requests and verify that we get three unique responses. The
only things that change will be:

- request: to modify the method or change request headers. So this is
  constructed outside and passed in by each test.
- response headers: to set headers like `Set-Cookie`. So a callback can be
  passed which modifies the headers (any method you would normally call on
  http.Header) before the response is written.

This should make all of the subsequent tests much more succinct.
Implement TestNoCacheHeaderAuthorization

Set an `Authorization` header on the response.
Implement TestNoCacheHeaderCookie

Set a `Cookie` header on the request.
Implement TestNoCacheHeaderCacheControlPrivate

Set a `Cache-Control: private` header on the response.
Mock for Cache-Control: private

This isn't default Varnish behaviour per:

https://www.varnish-cache.org/trac/ticket/477

However Fastly have implemented it in their standard config and I'm led to
believe that CloudFlare do the same, so we'll keep it in and mock it for
now. If it turns out that CloudFlare don't do it then we should consider
moving the tests away from the "standard caching behaviour" category.
Merge pull request #29 from alphagov/implement_standard_nocache_tests

Implement all NoCache tests