MINOR: initcall: apply initcall to all register_build_opts() calls

Most register_build_opts() calls use static strings. These ones were
replaced with a trivial REGISTER_BUILD_OPTS() statement adding the string
and its call to the STG_REGISTER section. A dedicated section could be
made for this if needed, but there are very few such calls for this to
be worth it. The calls made with computed strings however, like those
which retrieve OpenSSL's version or zlib's version, were moved to a
dedicated function to guarantee they are called late in the process.
For example, the SSL call probably requires that SSL_library_init()
has been called first.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 2692668..0c531e6 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -2032,30 +2032,26 @@
 
 INITCALL1(STG_REGISTER, http_res_keywords_register, &http_res_actions);
 
-__attribute__((constructor))
-static void __tcp_protocol_init(void)
-{
-	hap_register_build_opts("Built with transparent proxy support using:"
+REGISTER_BUILD_OPTS("Built with transparent proxy support using:"
 #if defined(IP_TRANSPARENT)
-	       " IP_TRANSPARENT"
+		    " IP_TRANSPARENT"
 #endif
 #if defined(IPV6_TRANSPARENT)
-	       " IPV6_TRANSPARENT"
+		    " IPV6_TRANSPARENT"
 #endif
 #if defined(IP_FREEBIND)
-	       " IP_FREEBIND"
+		    " IP_FREEBIND"
 #endif
 #if defined(IP_BINDANY)
-	       " IP_BINDANY"
+		    " IP_BINDANY"
 #endif
 #if defined(IPV6_BINDANY)
-	       " IPV6_BINDANY"
+		    " IPV6_BINDANY"
 #endif
 #if defined(SO_BINDANY)
-	       " SO_BINDANY"
+		    " SO_BINDANY"
 #endif
-		"", 0);
-}
+		    "");
 
 
 /*