Save metadata cache to disk and load it on startup.

Does not try to avoid nulls in cache (do we allow those?)