[NFC][LifetimeSafety]: Track assignment history within a single CFGBlock (#196075)
## Summary
Tracking assignment history allows us to backtrack and provide more
informative error messages, helping users better understand the root
cause.
As discussed in
https://github.com/llvm/llvm-project/pull/188467#issuecomment-4359071778,
I am splitting the original #188467 into smaller parts. This PR submits
the core logic: performing a reverse search for assignment history
within a single CFG block.
A simple unit test has been added to verify the basic functionality of
the algorithm.
## Details
This function is straightforward: it iterates through each
`OriginFlowFact` in reverse order and saves the appropriate
`SrcOriginID`. Here, "appropriate" means the `Origin` contains the
target `Loan`.
---------
Signed-off-by: Yuan Suo <suoyuan666@s5n.xyz>