Go back to using TCP sockets for communication

The new loadtest.js script indicates that for whatever reason, using
TCP connectivity to R worker processes is far more stable than
Unix domain sockets. This commit switches us back to TCP but also
abstracts out a transport layer that makes it trivially easy to
switch back and forth between the two, or add new transport types.