Reapply "InstrProf: Don't keep a large sparse list around just to zero it"

When I was preparing r218879 for commit, I removed an early return
that I decided was just noise. It wasn't. This is r218879 no-crash
edition.

This reverts commit r218881, reapplying r218879.
Reapply "InstrProf: Update for the LLVM API change in r218879"

Reapplying now that r218887 is in.

This reverts commit r218882, reapplying r218880.