Replace pipe with socketpair

pipe transfers data in 4K chunks only, socketpair is less limited so
transfers take less time.

Also, non-blocking works better on sockets than on pipes.
Return consistent errors from wire_net_read

We left the errno unset in exit conditions from wire_net_read where
there was no real error by any other syscall and it was hard to diagnose
what exit path was taken and why we got no data back.