Extract CachingGenerator.Arguments into a new CacheArguments class

And document it.