Primary(payload: U, otherSide: SingleMessageRecipient, otherSessionID: Long, myKeyPair: KeyPair, notaryNode: NodeInfo, progressTracker: ProgressTracker = Primary.tracker())
Abstracted bilateral deal protocol participant that initiates communication/handshake.
Theres a good chance we can push at least some of this logic down into core protocol logic and helper methods etc.