Rename misnamed PaymentRequestException to PaymentProtocolException. It's used for payment messages and maybe payment acks as well.
Extract methods for creating and parsing payment requests, payment messages and payment acks, as well as Ack data class. Expose more payment request data from PaymentSession. Add unit tests for roundtripping all messages.
Minor reformattings + more javadocs + rename signRequestPki to just signRequest as there are no other signing methods at the moment.