Proposal: add support for profile instrumentation based code coverage

I’ve been investigating better support for code coverage in Clang/LLVM. I’ve spent some time experimenting with several prototypes and have arrived at this proposal. I’d like to get some feedback on the overall approach before I start submitting patches.

Background: