Work on a branch towards making suspicious-expression based on asts only

This should eliminate at least some undesired :suspicious-expression
warning messages for forms like (-> 1 (= 1)).

I also believe that once all but a tiny fraction of linters are using
the asts and not the source code text or read-in forms, it will be
easier to have 1 way to suppress warnings on a per-expression basis
via source code annotations (e.g. in metadata).  Trying to devise an
implementation that works for linters that use text or read-in forms
as well sounds like a pain.
Looking good, except for an issue with and/or

It looks like and/or with >= 2 args will warn all of the time, because
the macroexpansion on the 'way down' includes an expression of the
form (and x).  Need to figure out a correct way to suppress this.
Prevent :suspicious-expression warnings for normal and/or uses
Eliminate some unwanted warnings for updated suspicous-expression linter

In particular, for suspicious-looking expressions that arose during
the macro expansion of and, or, cond, and defrecord forms.
Record detailed changes in :suspicious-expression linter behavior

Some issues should be improved further.
Fixed one regression where a warning that should be printed, wasn't
Fix typo
Finish analysis of changes in suspicious-expression linter behavior
Merge branch 'fix-issue-93'

Things are in a pretty good state now.