Avoid memory leaks!
Added pipe functionality.

But there are bugs :(

1) Have to press enter twice after running a pipe command.
2) There is some kind of race condition between the read/write ends of the pipe. All docs I can see tell me that running ./a.out < test.sh runs correctly most of the time but sometimes only prints the first line of output.
fixed with the help of xv6 book!!