split jvm dependent code to its own namespace, main cinc.analyze namespace only deals with namespaces and vars.
added walk multimethod to walk over ast nodes, added walk implementation for all the ast nodes.
moved host-utils file over to cinc.analyze.jvm.utils
added jvm.validate pass
move walk and walk helpers to analyzer.utils
fix potential NPE when analyzing symbols
fix typo in parse 'quote
added :op :binding to let/loop/letfn bindings so we can walk over them
re-introduce symbol macroexpansion so we can transform Class/Field to (. Class Field) in the jvm analyzer
add validation for static fields and for static methods, check only arity for now
fix typo in jvm.utils
removed constant coll detection from main analysis, moved into a pass.
we also lift vars with :const metadata
don't use definline since it may behave funny
only walk when there's something to walk, avoid adding keys with nil as a value
removed walk multimethod, added prewalk and postwalk that understand automatically what to walk, use those
fix parse 'quote
don't throw away lifted values in recursive collections
use reduce-kv for pre/postwalk
:maybe-class => :const
Merge branch 'host-agnostic' into analyzer-WIP
Closes #2