Added ipc module

half-duplex-pipe.c
makefile
ipc::half-duplex-pipe:dup()

use dup() to make pipe input as the stdin of
the exec program.
ipc:half-duplex-pipe:dup2()

close(0)
dup(fd[0])
atomic

this makes the fd[0] as the stdin of the exec program
later. even we don't have to close(0), but in practice,
it is prefered and use dup2() is the better way because
atomic operations.