Cleanup interop syntax used in the runtime lib

* replaced all instances of cljs.core.DataStructure.EMPTY with (.-EMPTY DataStructure)
* replaced all instances of js/foo.bar with (.bar js/foo)
* replaced all instances of (.foo js/Math ..) with (Math/foo ..)
* replaced all instances of (gstring/StringBuffer. ..) with (StringBuffer. ..), :import-ing StringBuffer in the ns
* :import-ed all the gclosure types rather than :require-ing them
* renamed the clojure.browser.event/EventType protocol to IEventType to avoid conflicts with goog.events.EventType