[Coverage] Handle invalid end location of an expression/statement.
Fix a crash when an expression/statement can have valid start location but invalid end location in some situations. For example: https://github.com/llvm/llvm-project/blob/llvmorg-16.0.1/clang/lib/Sema/SemaExprCXX.cpp#L1536
This confuses `CounterCoverageMappingBuilder` when popping a region from region
stack as if the end location is a macro or include location.
Reviewed By: hans, aaron.ballman
Differential Revision: https://reviews.llvm.org/D147073