_putenv_s removes a variable for "" and returns EINVAL for NULL, so the
CRT environment cannot represent an explicitly empty value; the boundary
collapsed unset and empty into one state. Read/write through the Win32
environment (SetEnvironmentVariableA/GetEnvironmentVariableA) instead,
keeping a best-effort _putenv_s sync so legacy std::getenv readers stay
coherent, and treat the empty-vs-unset read race fail-closed.
- replace GCC/Clang-only __builtin_{add,sub,mul}_overflow calls with
yams/core/checked_arithmetic.h helpers (addOverflow/subOverflow/
mulOverflow/narrowOverflow); MSVC lacks these builtins, breaking the
Windows build introduced by #61
- port the reviewed helper + unit tests from bugfix/review-findings
- detect floating-point std::from_chars availability at compile time
(some Apple libc++ versions only provide the integral overload) and
fall back to a strict strtod parser; template indirection keeps the
missing overload from being diagnosed in the discarded branch
- add config_parse_utils and checked_arithmetic test targets