fix interleaving of child stderr and stdout, print stdout when a child fails and has stderr

This improves the output of the task in the following ways:
- Make stdout and stderr from the child process correctly interleaved.
- Always print both stdout and stderr.  This is important for many tasks like grunt-contirb-compass that spawn a child and pipe through both stderr and stdout.
  - stderr is printed when a child process succeeds.  Previously only stdout was printed.
  - stdout is printed when a child process fils.  Previously only stderr was printed if there was stderr output.

## Testing

#### executed outside of concurrent
![screen shot 2013-12-01 at 9 34 17 am](https://f.cloud.github.com/assets/1527302/1650791/eb8abf7c-5aae-11e3-81fc-82867507ad60.png)

#### executed inside concurrent, before change
A task that has both stdout and stderr executed outside of concurrent
![screen shot 2013-12-01 at 9 42 34 am](https://f.cloud.github.com/assets/1527302/1650803/0dea65d0-5ab0-11e3-8349-148c326c43d3.png)

#### executed inside concurrent, after change
![screen shot 2013-12-01 at 9 23 33 am](https://f.cloud.github.com/assets/1527302/1650805/14c22aa0-5ab0-11e3-85a2-b1b65048ce33.png)