The sanitizer features with CMake were relying the the Extra CMake
Modules from the KDE project. It used to check compatibility with the
compiler version for GCC and Clang, and add the appropriated flags to
the CMAKE_C|CXX_FLAGS. It has several limitations:
- It only supports GCC and Clang, and fails with another compiler.
- It supports a finite number of sanitizers, and fails if unknown ones are used.
- Since it uses the CFLAGS and CXXFLAGS, it messes up with the fuzzer sanitizer which tries to link everything to it's own functions.
This diff replaces these features with a custom file. This is a mixup
between the autotools equivalent check and the ECM features, i.e. it
checks that the -fsanitize flag is supported both for compilation and
linking, and adds the appropriated flags for better sanitizer
efficiency. It does not use the CFLAGS or CXXFLAGS but target
properties to attach the flags, allowing for the use of the fuzzer
sanitizer as well (need the proper definitions to build, will be added
by D4588).