output cache allow vary

I was looking into the output caching feature, and I found that it didn't take into account headers, meaning that I couldn't cache responses which used (in my case) an accept-language header.

I've added the ability to specify a set of headers on a per-route basis, which are known to vary the output. It then appends these as extra querystring parameters when building the cache-key

Let me know what you think.