Revert to heuristical DebugLoc finding
Do not assert when trying to replace the log with another log

This usually happens when TempScopInfo calls isMaxRegionInScop(..),
so don't fail there.
Use a snapshot of the aliasing pointers

Store the llvm::Value pointers of the AliasSet instead of the AliasSet
itself.

We have to be careful about changed IR when the message is generated,
because the Value pointers might not exist anymore. This would render
the Diagnostic invalid. For now we just assert there.

Simply do not retreive a diagnostic message after the IR has changed
it's not valid information anyway.
Cleanup RejectLog code
Add print method to RejectLog