Remove code that tries to optimize on the incorrect assumption that child actions cannot contain donuts that must be handled according to their own cache policies.

One prominent case where this causes the cache to return incorrect values is when the the main action for a request does not cache, but one or more child actions do cache. And they contain donuts.
The child action as a whole is then returned and the donut that should have been replaced is not.
Merging mlidbom's work into dev