util/mkerr.pl: make it not depend on the function code

The output C code was made to use ERR_func_error_string() to see if a
string table was already loaded or not.  Since this function returns
NULL always, this check became useless.

Change it to use ERR_reason_error_string() instead, as there's no
reason to believe we will get rid of reason strings, ever.

To top it off, we rebuild all affected C sources.

Fixes #9756

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9756)
diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c
index ef9b95a..fc81948 100644
--- a/ssl/ssl_err.c
+++ b/ssl/ssl_err.c
@@ -552,7 +552,7 @@
 int ERR_load_SSL_strings(void)
 {
 #ifndef OPENSSL_NO_ERR
-    if (ERR_func_error_string(SSL_str_reasons[0].error) == NULL)
+    if (ERR_reason_error_string(SSL_str_reasons[0].error) == NULL)
         ERR_load_strings_const(SSL_str_reasons);
 #endif
     return 1;