Make sure link_pipe doesn't try to initialize a pipe twice

This is in and of itself not that bad, the only problem being that libuv maintains a list of handles internally, which is corrupted by double initialization. In particular, we might either hang or segfault on cleanup or gc.

Refs #4229