This enables asan (including lsan), and restructures the sanitizer builds. It also removes -fno-omit-frame-pointer again. This is debatable. The main reason for removing this is that GCC (but not clang) fails to build (runs out of registers) when combining asan, -fno-omit-frame-pointer, and the x86_64 asm. But I believe without -fno-omit-frame-pointer, the instrumented binary may be closer to the real binary, which is good. If we get unusable debugging output on CI without frame pointers, we can still reproduce the build locally.
Backport of secp256k1#846.
Completes backport of secp256k1#969:
https://github.com/bitcoin-core/secp256k1/pull/969/commits/3d2f492ceb76eea93d3a9f85f80baec7b5842160
Depends on D12957.