Integrate caching

This branch serves as an integration point for the various cache and tier-related work we currently have outstanding. It should not be merged without consent from @athanatos and @gregsfortytwo.