Added pipe state, buffer, and read/write semaphores
Initialized pipes
Implemented pipecreate
Added isbadpipe macro
Implemented pipdelete
Remembered to restore interrupts after deleting a pipe
Implemented pipconnect
Accessed pipe by reference in pipe table instead of a copy
Implemented pipdisconnect
Decided to use head index and length instead of head and tail pointers
Swapped reader/writer in pipconnect
Renamed pipconnect ends to be more clear