Enable client caching (supercedes #776)

This commit enables revalidation of client side caches via conditinal cache control headers.

Wrapping resources with the `conditional` directive  is all that's needed to take advantage of this functionality.

`FileAndResourceDirectives` include this mechanism by default.