OnVariableValueChange checks for callback existance

Before running callback in OnVariableValueChange, Dictionary is checked
whether callback for given variable exists.
SRintAPI is no more applying local changes to local snapshot.

All changes are visible only when snapshot changes.
VariablesView::PrintMessage uses Dispatcher.Invoke

PrintMessage can be invoked from different thread, so Dispatcher.Invoke
is used to guard thread boundaries.
dhGet can return null

dhGet returns null whenever asking for non-existing variable.