Eliminate use of asprintf.
Eliminate use of asprintf.

_xcrypt_gensalt_sha{256,512}_rn were being entirely too clever; the
salt string can, in the normal case, be constructed with a single call
to snprintf; in abnormal cases they may need to make two calls to
snprintf before giving up, but they never need to allocate heap
memory.

This is the last use of a GNU library extension in this codebase;
after this change, it is possible to compile the entire thing in
-std=c99 mode and with AC_USE_SYSTEM_EXTENSIONS disabled.  (Future
work may bring back some extensions, properly conditionalized, so we
are not actually going to remove AC_USE_SYSTEM_EXTENSIONS or switch to
-std=c99 from -std=gnu11.  C99 compiler and library features will
continue to be unconditionally required.)

	* xcrypt-gensalt.c (_xcrypt_gensalt_sha_rn): New function,
	factoring out shared logic between _xcrypt_gensalt_sha256_rn
	and _xcrypt_gensalt_sha512_rn.  Do not use asprintf.
	(_xcrypt_gensalt_sha256_rn, _xcrypt_gensalt_sha512_rn): Just
	call _xcrypt_gensalt_sha_rn.

besser82/libxcrypt,besser82/libxcrypt,besser82/libxcrypt,besser82/libxcrypt