Push the reliable channel code into the channel implementations

This is only needed for the shared-memory ring, and is unnecessary
overhead for the Unix domain socket.

Signed-off-by: David Scott <dave.scott@citrix.com>