Simpler and more powerful assoc/dissoc/update-in for both Clojure and ClojureScript