Builds the protobuf client payload encrypted into the Noise handshake.
It selects registration or login fields from persisted pairing state and returns updated client or Signal data when key material is initialized.
@spec build(ExWapp.Noise.t()) :: {:ok, binary()} | {:ok, binary(), map()} | {:error, term()}
@spec build(ExWapp.Noise.t(), map()) :: {:ok, binary()} | {:ok, binary(), map()} | {:error, term()}