Enhance redefd-vars linter to have configurable disabling

This is similar to the enclosing-macros method implemented for
suspicious-expression and constant-test linters, but in this case it
works by finding the lowest common ancestor AST of every pair of def
ASTs for the same Var in the same namespace, and if that AST is inside
of a configurable enclosing-macro, then only one of the two def's is
kept.  After that, then if there are still 2 or more def's remaining
for the same Var, then a redefd-vars warning is issued.

Eliminated the special-case code for defonce and defmulti in favor of
the general configuration method, and tested that this works.