replace exec with spawn

This should fix the issues described in #9.

I successfully tested streaming the output of a long-running grunt task, but cannot confirm the windows issue because I don't have access to a windows box. Note that I did not adapt the tests yet as adapting the expected outcome files is going to be a huge PITA and I wanted to get early feedback (maybe we could also think of a better way to test the outcome instead, e.g. we could parse expected and actual with esprima and compare the tree so we don't have to reproduce up to the last whitespace etc)