OpenFifo opens a fifo. Returns io.ReadWriteCloser.
Context can be used to cancel this function until open(2) has not returned.
Accepted flags:
syscall.O_CREAT - create new fifo if one doesn't exist
syscall.O_RDONLY - open fifo only from reader side
syscall.O_WRONLY - open fifo only from writer side
syscall.O_RDWR - open fifo from both sides, never block on syscall level
syscall.O_NONBLOCK - return io.ReadWriteCloser even if other side of the
fifo isn't open. read/write will be connected after the actual fifo is
open or after fifo is closed.