[LifetimeSafety] Handle temporaries of non-trivial view types (#177878)
Fixes https://github.com/llvm/llvm-project/issues/177802
This enables the analysis to correctly track lifetimes through
non-trivial view types that require temporary binding due to having a
destructor.
This is fixed by handling `MaterializeTemporaryExpr` even for
lifetime-extended temporaries and fixing the flow of origins.