Change spawn streams

Fixes #303, #304 and #311.

We don't use pipe by default for stdio spawn, we look at how nodemon is being used, the either decide to use pipe or process.stdout/err. Then depending on whether nodemon is required, we then attach to the different stdout/err streams as required.

Tested on mac and windows.