Added checks for variable existance in OnSnapshotChanged

Snapshot is swapped after notifying registered callbacks. If variable
didn't exist in previous state, it's skipped.
The same happens to variables which did not change.