Coverage: fix handling of constructors and top-level decls (SR-7446) (#15966)
* [Coverage] Instrument constructor initializers (SR-7446)
We need to instrument constructor initializers, instead of the
delegating constructors which just call them.
rdar://39460313
* [Coverage] Remove dead code, NFC
* [Coverage] Use a shared profiler for constructors and member initializers
This fixes coverage reporting for member initializers and cuts down on
repeated AST traversals of pattern bindings within nominal type decls.
This allows us to remove some defensive heuristic code which dealt with
closures and if-exprs within member initializers.
(cherry picked from commit 8a003a41dac7f500866bc0facee323c79780d9b1)