Move search pipeline scratchwork to danger-jawsome-pipelines
Restructure code in jawsome-dsl
Memoize field-order, update tests
Remove unnecessary require
Remove unnecessary dependency
Use full namespace in logging macro
Ugly io-handling, because Clojure macros make it hard to default to stdin/stdout.

Also added a basic end-to-end test of jawsome.cli/core.

In jawsome.cli/core, we have several commands where we want to
(1) read from a file, defaulting to *in* if no input file is specified, or
(2) write to a file, defaulting to *out* if no output file is specified.

Using the `with-open` macro is not useful in this case, because it tries to
close readers/writers you open with it. Closing *in* or *out* worked fine at
the command line, but started to break down in the following situations:
(1) writing unit tests
(2) trying to write to the same writer twice (e.g. for `project` phase, when
    the header AND xsv-output are both going to *out*

Threw in some hackish-feeling code to handle it all... I'm sure you understand.
Merge branch 'matt_dev'