unix: fix `Eof on empty TCP.write

Currently writing a `Cstruct.t` of length 0 using the socket backend results in an `Eof`. While this is not necessarily bad in itself, it is different from what direct backend does.

This fixes the divergence in semantics by making socket backend return `Ok`.

(N.B. Sorry, I originally pushed the branch to the main repo by mistake. :blush:)