Revise Cache Control Data Storage for Remote File HTTP Backend

Highlights:
* Move cache control data storage logic into its own class
* Revise HTTP backend to use the above
* remove cache control logic from base remote file provider
* remove cache control data fields from remote file resource, and use URI as the primary key for cache control data. RFC 2616 does not offer much guidance on this topic, but there may be edge cases where reusing etag or last modified times between different origin servers leads to incorrect behavior.
* lots of test refactoring to remove method stubs on value objects, clarify context, etc.