don't lose previous changes when an update results in no change

Apply fix to the Clojure and ClojureScript versions of TrackingMap
and update tests.
improve change reporting to emitters