Make first attempt with conduit

This adds a simple function `receiveMessage` which takes a conduit
`Source` and returns both a consumed `PeerWireMessage` and a conduit
`ResumableSource` which can be further consumed by the client.

I don't know how correct this is, but it looks like a *really* clean
API.

:)