KERN-2844 HTTP cache infrastructure improvements

Please see updated design notes here:

https://jira.sakaiproject.org/browse/KERN-2844?focusedCommentId=159777&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-159777

Squashed commit of the following:

commit b3c4dfe67dd97f5e96f56687eb84bc37d6239361
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 30 14:08:46 2012 -0700

    KERN-2844 Clear the static and dynamic content cache when ContentReloader does its thing

commit a14c598f0c8af1f0853f0a0d2226979e5816b563
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 30 13:09:09 2012 -0700

    KERN-2844 Don't call cache.remove() unless key is there

commit ea315cf340350b772d26790455733fcbdc7880f3
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 30 13:01:02 2012 -0700

    KERN-2844 Invalidate the me feed from places that alter it

commit e1fa25c07faee1a3e25cd3c7672d1184da69c05a
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Tue May 29 16:13:43 2012 -0700

    KERN-2844 Rename method, improve javadoc

commit a79a50c50f83d6715c68e191db01c8be83014a6a
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Tue May 29 15:28:52 2012 -0700

    KERN-2844 Add telemetry to dynamic response cache; adjust constant value

commit ad702e44c3c309293723edeb3a9dc4848375e89d
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Tue May 29 14:25:59 2012 -0700

    Port KERN-2850 and KERN-2871 into the new cache components

commit 121a93ceaa636f29a56a07ed15841701fff783da
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Tue May 29 11:41:30 2012 -0700

    KERN-2844 Rebase onto current master, resolve pom conflicts

commit d66157739c1943950b654f2bcc60e31bec138be0
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Tue May 29 10:36:02 2012 -0700

    KERN-2844 Rename for clarity, add javadoc

commit 38c765952ee1c90d68fc25948d4867e084aca363
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Fri May 25 16:24:48 2012 -0700

    KERN-2844 Split http into api and impl bundles

commit 4f3a2160b6e6a35a8a8517c207703a51aa9c0fde
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Fri May 25 15:26:36 2012 -0700

    KERN-2844 Use sha1 for etag value

commit 9cb1270351672d637491128ea67c1f1e9f70df08
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Fri May 25 14:53:13 2012 -0700

    KERN-2844 Return 304 to clients that present us with fresh etags; cache invalidation still not complete

commit cb831ee7235311e68f8eaaf905d0374d9e451a07
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Fri May 25 12:55:10 2012 -0700

    KERN-2844 Etag response cache, work in progress

commit d9a8e7f39b8d1d224895fc06cdaa3e7644edfa95
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Fri May 25 10:16:15 2012 -0700

    KERN-2844 Rename CacheControlFilter to StaticContentResponseCache to make its role more clear; tweak expiration times

commit 5916e96ffcec808c016d4ab4eb97bc208eb0d101
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 24 12:52:31 2012 -0700

    KERN-2844 Encapsulate cache params in a proper object; simplify config language

commit 3628a78b4afc090b40620958f828b0ae25fcef1a
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 24 11:21:31 2012 -0700

    KERN-2844 Remove the setting of random headeres by side effects

commit 3b4074fba3a83caf579a3cca97ef85e1212a4f7e
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 24 10:15:49 2012 -0700

    KERN-2844 Inline the pointless CacheResponseManager into the CacheControlFilter

commit df9c2effce6d35154991260b42bdfc26d65756f4
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 23 16:42:16 2012 -0700

    KERN-2844 Bring cache save and lookup back into CacheControlFilter, but in its own method for readability

commit ecb51f501d096962a7195bdf3e7e9d42f828a965
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 23 13:39:54 2012 -0700

    KERN-2844 Extract response cache replay as its own service