Added pipe abstraction

Since each of the steps in out pipeline will be linked by a buffered
stream I have added a simple pipe_t.
pipe_put(pipe, data) to write data or pipe_put(pipe, NULL) to end the
stream.  pipe_get(pipe) either returns some data or NULL when the stream
is done.