3.0 cell cache

Add caching to cells using the interface proposed in #5414. I've also added a new generic `cache()` method to View. I figured it could be useful to userland code to provide flexible fragment caching that covers many of the gaps left by the removal of full page caching.