Linker: Save GNU push-/pop-state detection with compiler inspection results

Previously we saved it in the cache, which:

* Persists even if a new version of CMake changes how the check works.
* Does not propagate to `try_compile` checks.
11 files changed