Support configurable compression extensions

We might eventually want to make this a plugin. This is made difficult
because some deployment engines (or more precisely, the hosting
providers, see: GCS) require content encoding to be specified not as a
header.

We are obviously having the same issue with cache lifetime (hence why
it's treated the same way)