ActionCaching seems a little confused about formats.
a) It ignores HTTP_ACCEPT formats, instead relying just on the path extension
b) When expiring caches, it uses the extension from the request. If I POST to create a new record, both xml & html versions of that resource are going to need invalidating, so it doesn't make sense to vary what you're expiring based on whether the request came in via xml or html
This patch messes around with the ActionCache code so that ActionCachePath no longer infers extensions from the request while expiring actions, and makes it aware of request.format when it does try to produce an extension.