Issue title: Async stdout (print) when crunching data
 Issue body: Hi !
First thanks for the library it's helpful.
If I run this python script from the python command window : 

```
   # application main loop
    for i in range(0,1000000):
      if i % 9893 == 0:
        print i
     # heavy crunching
      z = 1
      for j in range(0,100):
        z = z*j
```

I get one result after another (0 then it's crunching then 9893...)
But if I call this script from node & this python-shell module and use `console.log` with the message event, I only get the results (what's written in stdout, the line `print i`) once the program is done crunching numbers..

Do you have any idea how I might have async stdout with python-shell ?
Thanks in advance!

 Comments: 
 Comment 0: Stdin and stdout streams are buffered by default. You will need to flush explicitly, making sure data is written at the right moment.

In your case, you want to flush from your Python script, so you would use something like `sys.stdout.flush()` before entering the crunching part.

 Comment 1: Thank you sir :) .
{'source': 'GithubIssues', 'repo_name_with_owner': 'extrabacon/python-shell', 'issue_id': 166886721, 'repo_stars': 1838.0}