Add support for a custom output writer

In some cases it is useful to redirect the output of a command to a
logger instead of printing the output to stdout/stderr. With this
patch you may now indicate an IO action that gets executed whenever
Shelly prints output.

example:
>
>  main :: IO ()
>  main = do
>    logger < createLogger
>    shelly
>      . withOutputWriter (\_handle output -> debug logger output)
>      $ run_ "superDuperOutputCommand" ["--foo", "--bar"]
>