Migrate remaining compiler code to from std::map to Swiss tables.

This cl hit an issue during the shared library cmake build from ODR violations, leading to mismatched absl hash seeds.  The problem was pre-existing but didn't manifest until now, and can be traced to the fact that in shared library builds we linked Abseil statically.  All of the cmake changes here remove the underlying ODR violation.

PiperOrigin-RevId: 485787671
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
index 3be0df3..02667c5 100644
--- a/cmake/libprotoc.cmake
+++ b/cmake/libprotoc.cmake
@@ -26,5 +26,10 @@
     COMPILE_DEFINITIONS LIBPROTOC_EXPORTS
     VERSION ${protobuf_VERSION}
     OUTPUT_NAME ${LIB_PREFIX}protoc
-    DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
+    DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}"
+    # For -fvisibility=hidden and -fvisibility-inlines-hidden
+    C_VISIBILITY_PRESET hidden
+    CXX_VISIBILITY_PRESET hidden
+    VISIBILITY_INLINES_HIDDEN ON
+)
 add_library(protobuf::libprotoc ALIAS libprotoc)