Improve documentation and simplify the Pipe interface
Fix error string
Add a Connection interface.

A connection is a bidirectional connection between two peers. TCP or other
connection oriented protocols will be implemented using the Connection
interface.