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.
I think `TSignallingMessage` is fine although I'd also be happy with just `T`.