Clang coverage support

llvm-cov is now used to generate coverage information when clang is used as the compiler.