On CMake v3.28+, `EXCLUDE_FROM_ALL` is supported natively as an argument
to `FetchContent_Declare`.
On CMake v3.30+, `FetchContent_Populate`, which we use to polyfill
`EXCLUDE_FROM_ALL` support for older versions of CMake, is deprecated
and triggers a noisy warning.
Avoids the warning by using the native `EXCLUDE_FROM_ALL` support on
CMake v3.28+.
1. Replaces `#include <Windows.h>` with `#include <windows.h>`
for compatibility with case-sensitive file systems (e.g. MinGW
cross-compilation on a Linux host).
2. Adds missing `#include <cstdint>` to `cpp/types.h`.
3. Fixes calling convention for callback lambdas.