Zapshell

This originally started out as an implementation of :!, but along the way I decided to rework the parsers for the similar :cabal and :make to be unified and work alot better/smarter. So the code for !: is actually a very small amount of this commit, most of it is making things like

:!echo "hello \" world"

work properly. (And similarly for :make and :cabal although the use-cases here are much less obvious).

Also now working on the latest push (which hasn't passed travis ci yet as of posting) is something like

:cabal bench --benchmark-options="--output out.html"