Added pipe_push_clobber, and added a sentinel element.

This fixes a bug where empty and full buffers are indistinguishable.
Additionally, an overwriting form of pipe_push has been added.