Find consumed references within syntax-quotes

While unqualified references within syntax quotes cannot be detected
by slamhound (see issue #19), they should be detectable after they are
consumed within the same namespace.

However, forms acquired through #'clojure.core/read have already gone
through reader macro expansion. Therefore the original source:

    (ns my.ns)

    (defmacro named? [x]
      `(instance? Named ~x))

    (named? :foo)

is received by regrow as:

    (ns my.ns)

    (defmacro named? [x]
      (clojure.core/seq
        (clojure.core/concat
          (clojure.core/list 'clojure.core/instance?)
          (clojure.core/list 'my.ns/Named)
          (clojure.core/list x))))

    (named? :foo)

Since the symbol Named is unknown at read-time, syntax-quote qualifies
it in the current namespace.

Slamhound correctly identifies an import candidate, clojure.lang.Named,
but when it re-evaluates with the (:import (clojure.lang Named)) ns ref,
an Exception is still thrown because the Named symbol is still qualified
as my.ns/Named.

We can avoid this situation by walking the body and de-qualifying only
the symbols that have been qualified in the current ns. This should not
be problematic since unknown symbols are qualified in the current ns by
default.

Another way to solve this problem is to re-read the source after
transforming the ns form. This method requires passing a File or
String object to regrow (Reader objects can not cloned), and perhaps
implementing a polymorphic API for forms and File objects.

Since that solution changes more code and potentially eats more cycles,
we opt for the code-walking solution implemented here.
Escape ns qualifier within pattern

Better careful than sorry.
Merge branch 'experimental'

The walk/replace of symbols qualified to the current *ns* does not seem
problematic.

It also addresses long time issue #14, so I am merging it in.

* experimental:
  Escape ns qualifier within pattern
  Find consumed references within syntax-quotes