Per BIP327, a secnonce consisting of only zero bytes is invalid for Sign and will cause it to fail.
Previously, MuSig2SecNonce::IsValid() only reported whether secure memory was allocated for the secnonce, not whether CreateMuSig2Nonce had succeeded in creating the secnonce.
This patch tracks successful secnonce generation, rejects CreateMuSig2PartialSig when generation has not succeeded, renames the query method to HasNonce, and adds a regression test.
Test plan
/build/bin/test_bitcoin --run_test=bip328_tests/secnonce_lifecycle