Use dedicated threads for communcation for each ProcessWrapper instance

Although we do have to use exactly 1 thread for all operations on a given
socket (at least on windows...), it doesn't have to be the main thread.

Even odds if this will break windows support in some unforseen way.