Support separate live stream for stderr

This PR adds support for using separate IO streams for live stdout and stderr streams. I tried to make the minimal number of changes and keep things backwards compatible - the default behavior is both stdout and stderr to go to live_stream (if one is set). If you want stdout only, you set live_stderr_stream to nil. If you want separate streams you set live_stream and live_stderr_stream to two separate values.
we should update this spec with the behavior that will not break the backwards compat.