* in AllocKey capture and propagate the return of the per-type wc_*_init_ex
calls (ed25519, ed448, falcon, ML-DSA, ML-KEM, ...) instead of discarding it,
so an init failure surfaces rather than leaving a partially-constructed key
for later use.
* The `default:` arm of the type switch now sets `ret = BAD_FUNC_ARG` and
breaks, instead of returning directly, so it reaches the common cleanup.
* The failure cleanup distinguishes the two states: if the key was initialized,
FreeKey(); otherwise XFREE(*pKey) and NULL the caller's pointer -- previously
an allocation that failed before init leaked.
* Two mis-copied #endif comments corrected: HAVE_CURVE25519 -> HAVE_ED25519 and
HAVE_CURVE448 -> HAVE_ED448.