Extend core and browser Javascript objects with ClojureScript core protocols