WIP, fleshed out full external API

Only thing missing from public API - ability to add arbitrary keys, and
register global properties to intercept.
Expose way to register with Globals, still needs to be persisted to
disk.
No cached string
WIP - org.JSON
Setup saving to disk
Intercept