Add omc_strdup wrapper and replace strdup calls (#15603)
* strdup is POSIX/C23 and not available in strict C17. * Add omc_strdup in util/omc_strdup.h that maps to strdup on C23/POSIX, _strdup on MSVC, and falls back to a malloc+memcpy inline otherwise. * Replace all strdup call sites in the simulation runtime and compiler runtime with omc_strdup.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>