Add `JsonViewer` widget and update formatting / highlighting of `ExpandableVariable` (#4167)
Add `JsonViewer` widget and update formatting / highlighting of `ExpandableVariable`
The `JsonViewer` widget wraps `ExpandableVariable`, displaying a tree of
fake VM service `Instance`s built from a JSON object. These fake
`Instance`s are stored in an instance of `JsonToServiceCache`, which
implements `getObject(...)`, allowing for calls to
`serviceManager.service.getObject(...)` to first check against the cache
before speaking to the VM service.
This change also modifies the `ExpandableVariable` widget structure to
condense `Map` entries into a single row, and also introduces some
syntax highlighting.