add definterface+
various other fixes to make definterface resemble anything else in clojure-land