Transactionalize

This is the candidate work to address Issue https://github.com/cocagne/pysrp/issues/6.

Builds upon PR https://github.com/cocagne/pysrp/pull/8...

Most of the changes are procedural, but the change in https://github.com/OnBeep/pysrp/commit/11ac6ebecde0782cedfbd1543862545c8fb05048 affects the randomness of the ephemeral values by sacrificing a single bit (out of 256) of entropy in favor of enforcing a 32-byte representation.