Added a PipeReader class.

Used to read from a blocking pipe stream. Currently implements only the
ReadToEnd method.