Implement Unix domain sockets in libnative
Move unix pipes implementation to pipe_unix.rs

The windows named pipes implementation will have almost nothing to do with unix
pipes, so I think it's best if they live in separate files.
Implement named pipes for windows, touch up unix

* Implementation of pipe_win32 filled out for libnative
* Reorganize pipes to be clone-able
* Fix a few file descriptor leaks on error
* Factor out some common code into shared functions
* Make use of the if_ok!() macro for less indentation

Closes #11201