Port to libchan, pt. 1

This is a minimal effort to get things running. Only the `beam` package has changed - backend code is untouched.

- The `beam` package is still around, but functions as a libswarm-specific wrapper around libchan messages. It'll either be renamed or moved to the top-level namespace.

- We have our own Message type which serializes/deserializes to libchan messages, and our own versions of Sender and Receiver which speak libswarm. WrapSender and WrapReceiver promote libchan objects to their libswarm equivalents.

- We also have our own wrappers around libchan utilities: RetPipe, Handler, Pipe, Copy.