This updates the mininum required version of CMake to 3.13, which is
present in Debian Buster.
At the same time, move all of our dependency handling to use
`FetchContent_Declare()`, `FetchContent_Populate()` and
`FetchContent_MakeAvailable()`. Since the latter was ony introduced in
3.14, provide a simple "polyfill" implementation for that.
As an added benefit, the configure step for libffi and libunwind will
now not be re-run every time the `CMakeLists.txt` changes.
Other changes:
- Explicitly spell out that we're testing up to 3.22 in
`cmake_minimum_version()`
- Rename `check_target()` to `sapi_check_target()` to avoid conflicts
with Abseil.