Split out all the cache purging and refactor

There are two distinct pieces of functionality involved here:

1. calculating which URLs to purge
2. sending purge requests to varnish boxes

These are now completely split out and de-coupled.

Also, as part of refactoring, new settings required for all
environments:

- VARNISH_CACHES: eg `[('http://varnish-1', 7999)]`
- APP_HOSTNAME: eg `stagecraft.preview.performance.service.gov.uk`