First pass at macros support

This adds full support for autocompletion and info of macros (both referred, including cljs.core, and namespace-qualified). Additionally, info now supports referred var names. 

There's still a bit of tidying/refactoring to be done - there are a few similar-but-not-quite-the-same functions for macros and vars that could probably be merged, but I'm hesitant to do this until we have support for imports so we can see what that looks like. Additionally, I'm still quite new to Clojure and am not 100% sure of the most appropriate way to go about creating a common abstraction over them - any suggestions for improvement / comments would be much appreciated :).