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:
```haskell
main :: IO ()
main = do
   logger < createLogger
   shelly
     . withOutputWriter (\_handle output -> debug logger output)
     $ run_ "superDuperOutputCommand" ["--foo", "--bar"]
```