Make the PeerConnection interface parametric on message type.

This is needed to allow it to encompass pseudo-PeerConnections,
like CHURN, that pass differently-shaped messages.