Elaborate on defmacro in README, and expand tests for the same

Working around defmacro in Slamhound is quite easy, but the README was
lacking specific advice.
Surround one more io/reader with with-open
Add slam.hound.test.util/with-transform-test

In order to accurately test Slamhound's interaction with files, we must
test the output of the entire process:

    - Open a reader on a file
    - Receive Clojure forms from reader (with reader macros expanded)
    - Reconstruct namespace
    - Write the new namespace back to the file, but copy everything else
      back verbatim

Many tests within Slamhound use (StringReader. (str '(literal forms)))
in order to avoid the drudgery of doing a manual pr-str.

Unfortunately, (str '[^{:my-metadata "value"} x]) outputs: "[x]", so any
metadata on the forms is irretrievably lost.

Since the interaction of Slamhound and metadata on forms is non-obvious,
I think writing our integration tests as comparisons of input and output
_files_ will help us detect these issues sooner in the future.¹

I have placed with-transform-test and with-tempfile into a common
testing namespace so that they can be used across all test files.

RE: the name `with-transform-test`:

    - I read it as "With transform, test …"
    - Many editors commonly treat ^with-.* as a specially indented form
    - It's awkward, so if a better name is found, let's use it

¹ See issue #72, and commit 54cba5c67fe0004378ea4e381ce9df800b510b63 for
  past issues with metadata
Refactor slam.hound-test with with-transform-test

Though this separates the input and outputs for the top-level
integration tests, I think this is a win for two reasons:

    - Easier to manipulate and read output strings (open the *.out file
      in a split window, then turn on Clojure syntax)

    - Metadata in the input file is processed without being mangled by
      `str`
Export test string literals from prettify-test and stitch-test

These changes, unlike 27d61ba, do not use `with-transform-test`, but
they do make manipulating and reading the expected test output easier.
Allow asplode to accept any type implementing clojure.java.io/Coercions

The reader passed to asplode is wholly consumed by asplode and is not
used again within reconstruct. Therefore, it makes sense to contain the
entire use of the reader within asplode.

Since the most straightforward approach to creating a reader from an
input is to call clojure.java.io/reader, asplode can share the same
convenient input signature.
Fix detection of metadata on composite forms

Commit 54cba5c6 introduced a call to clojure.walk/prewalk to dequalify
vars that were qualified to the current *ns*. A side effect of this is
that metadata on composite forms was lost because clojure.walk/walk does
not preserve the metadata on these forms.

To address this, we define our own version of prewalk that properly
preserves metadata.

Addresses #72
Set development project version