The CMAKE_C_FLAGS_COVERAGE is a language-wide variable. These flags will be passed to all invocations of the compiler, including invocations that drive compiling and those that drive linking.
Therefore, --coverage in the CMAKE_*_LINKER_FLAGS_COVERAGE variables is redundant.
Also this PR allows the user to override CMAKE_C_FLAGS_COVERAGE by setting a cache variable in the command line.