This class looks through the available responses, and provides an action -- either selecting
a response, or rejecting with either a timeout or forward to origin. The cache's
containsMatchingHeaders method is called in the case where the response has secondary keys
(defined with Vary) that must be matched.
Returns the action to take based off the available stored responses.