Behave better in an interactive environment.

The --repl flag is lacking in a few ways. For one, it means you can only
experiment with drake via -main, and not use smaller functions (since
any one of them may decide to shut down your repl!). Even if you do
pass --repl, the "do nothing" behavior is pretty useless: it will
continue executing whatever function it was in, despite the error
state that made it want to shut down.

So instead, I have changed (shutdown 1) to throw an exception, and added
a handler to -main that catches that exception and shuts down. For
repl use, you can call drake instead of -main, which is identical
except that it does not catch the shutdown exception, so you get a
stacktrace in your repl.
Merge pull request #131 from amalloy/develop

Allow special characters in inputs
Support deploy to Clojars; update README for Clojure frontend usage
Merge branch 'develop' of github.com:Factual/drake into develop
Clean up error sent to slingshot
Tidy up some destructuring
Merge pull request #132 from amalloy/repl

Choosing to interpret @dirtyvagabond's "thanks" as "Yes, please merge this!"
Merge pull request #133 from amalloy/zsh

Improve error messages produced when a shell command fails
Improve command line parsing.

- Let clojopts be in charge of splitting options from targets
- Add a --var x=y flag, so you don't have to pass it all in one --vars
Update drake's docstring and help output.

You don't need --repl anymore, and -- is available for opts parsing.
Add docstring to -main
Generalize the pattern of "parse something delimited"
Remove some repetition
Simplify implementation of a function
Fix some docstrings
Use seq, not (not (empty? ...))
Let emacs fix some whitespace
Allow unindented blank lines in step definitions.

As mentioned in #72.
Add test for allowing blank line in step commands