rotateDeviceAuthenticationKey

Replaces address's registered device authentication key K1 with the statement's replacement key K2 in a routine rotation (docs/device-authentication-rotation.md): authorized by K1 (the registered key at the statement's epoch) and proven by K2. The statement is the request's authentication; no other device takes part. Throws DeviceAuthenticationRotationException and changes nothing if any check fails.

From the moment this returns DeviceAuthenticationRotationOutcome.ROTATED, only K2 authenticates the device and the epoch is one higher. The messaging identity, prekeys and mailbox are not touched. A retry of the same rotation returns DeviceAuthenticationRotationOutcome.ALREADY_APPLIED.