Factored out WITH-HYGIENIC-NAMES' code walker

- I did this to implement a macro named ALWAYS-UNQUOTE, which was
  basically exactly the same as WITH-HYGIENIC-NAMES except that it
  mapped NAME to ,NAME rather than to (GENSYM (SYMBOL-NAME
  NAME)). Unfortunately, ANSI CL doesn't guarantee that backquoted
  expressions are transformed to a workable representation between
  reading and macroexpansion, and in fact SBCL implements backquoting in
  the reader.