fix $watch cleanup in tests
fix recursion control in $watch
deep change observing via $watch
Note: It does not handle new identities on deeper leveles.