WIP An interframe JSON cache

An interframe JSON cache which allows implementations of objects to share their state across frames. The first consumer of this is the package loading stuff, but the discovery stuff will also use this.