Refactor statement visitor
Improve expression dependency checker and use the observableStatement as Observable instead of the VariableState that aggressively notify all observers.
Merge remote-tracking branch 'origin/master'