allow ApplyCacheHeaders to be overridden when inheriting this class

I had a need to implement additional caching headers (specifically for setting the cache timeouts for our CDN) and the easiest way was to make this method overridable and subclass the CacheOutputAttribute class