There's a trick: `Output.Close()` checks if the destination is an `io.Closer`. If it is, it closes it.

Since we don't want os.Stdout and os.Stderr to be closed with the Output, we wrap it in a NopCloser.