Fix #1

This patch fixes issue #1 by reworking check-vars to examine the
dependency set of vars in a def rather than checking the def'd var
itself. Note that this means check-vars should be run after tree-shaking
to escape errors in unreachable code (for instance the definition of
c.c/eval which is self-reaching).
Fix #2

By banning c.c/load!
Create a structure for preserving raw source forms

For some operations (especially macros like defmethod and defmulti)
semantic information about the meaning of a given form is lost at
macroexpand time. This added data on forms records the otherwise lost
"raw" operations and "raw" AST so that later passes can take advantage
of the otherwise lost data.
Work around known TANAL/TEJVM bug

At present TANAL/TEJVM can't handle the Clojure core correctly. This
patch, while jank at best, works around this failure so that I can
continue analyzing and testing against whole program ASTs including the
Clojure core.
Remove the "Repeated analysis" FIXME

I'm punting to t.e.jvm for its eval anyway, so I'll just ignore this
defect. If it turns out to be a real performance issue at some later
point I'll revisit it.
Indentation
Whitespace
Drop pattern as a :require since it's unused
Update unsupported forms list
Symbol is innocuous, Var is the issue