Fix a race condition in the local channel (#2115)
Fix a race condition in the local channel (#2115)

This was showing up as a hang when the qstat command launched by
the grid_engine provider returned a very large output: the process
would not exit until stdout had been read enough to empty buffers,
but stdout would not be read until the process had been exited.

Python provides `communicate` to deal with exactly this sort of
complexity, so this PR switches to using that.

Found by Quentin Le Boulc'h
Parsl/parsl,Parsl/parsl,Parsl/parsl,Parsl/parsl