The idea is to add to `NotebookClient` a hidden IPython `ShellWidget` and connect that shell to the VariableExplorer. For this we need to detect: 1. When a kernel is ready to receive commands. 2. When a cell has finished execution. @goanpeca, we need your help for this one :-)