Fix the exec() for interactive commands

Hi, thanks for your solid work. 

I forked your code and rewrote a few lines. Currently, I test the following task under Mac OS X and Gentoo/Linux. It works fine. The interactive commands, `node` and `vim` can work properly.


    desc('This is an interactive cmds.');
    task('testCmd', {async: true}, function () {
      var cmd = ['ls  | sort -r'
        , 'node -e "console.error(\'hi you should see me\')"'
        , 'node'
        , 'vim'];

      jake.exec(cmd, function () {
        jake.logger.log('Done.');
        complete();
      }, {printStdout: true, printStderr: true} );
    });


The only thing I cannot understand so far is the line

    self.emit('stdout', data);

Why do you emit this signal? In my fix, if `config.printStdout` is `true`, this signal will be not emitted.