Eliminate many incorrect unused-namespaces warnings

Two main categories of problems fixed here are (a) better parsing of
ns forms to correctly reconstruct namespace name when they are given
in 'nested' form, and (b) no longer ignore macro invocations when
looking for uses of vars in a namespace.

There is still at least one bug where uses of Vars in syntax-quoted
forms are not recognized as uses of a namespace, leading to some
remaining incorrect unused-namespace warnings, including one that is
checked in as part of the Eastwood test suite, marked with a "TBD" in
a comment as needing fixing.

On crucible, these changes cause raw number of unused-namespaces
warnings to go down from 618 to 390.