fix EtagCache middleware for caches that aren't just in-memory