Improved cache layer
Storing a local cache of remotes is important. This release pulls together a more coherent story around caching, including forcing fresh updates on open, and properly maintaining a cache size while preserving as much of the index as possible.