unix: Use explicit handling for "connection closed" status
unix: Use explicit handling for "connection closed" status

Turn `UnixError` into an enum with an explicit variant for the
"connection closed" status -- like other back-ends do -- rather than
overloading `ECONNRESET`.

The overloading was causing misleading error reporting, especially when
unwrapping a result: the panic message would report it like an error
produced by the system -- while in fact Unix doesn't report this
condition (attempting to receive from a socket with no senders left) as
a system error.

What's worse, Linux actually reports `ECONNRESET` in some cases when
attempting a *send* after the *receiver* end was closed (specifically,
when the receiver was closed while there were unreceived messages
pending) -- so the overloaded error could cause serious confusion.

servo/ipc-channel