tcpsocket supports a send buffer

In the same spirit as #6768, this PR avoids a copy while transmitting large arrays between workers. It does this by 
1) moving the buffering functionality of worker connections to becoming a feature of tcpsocket itself and
2) directly writing large arrays to the socket instead of via an intermediate buffer.