TcpConnection: abstract PendingWrite logic to make room for other types of writing
Tcp: abstract writing into WriteCommand to make place for other kinds of writing
Tcp: introduce WriteFile to support zero-copy writing of files (using FileChannel.transferTo)