[LifetimeSafety] Track dereference operators behind a flag (#176794)
Add a parameter to `shouldTrackImplicitObjectArg` to differentiate
between lifetime safety analysis and statement-local analysis.
The statement-local analysis was experiencing false positives when
tracking dereference operators for GSL pointers, so this change allows
for more aggressive tracking in the full analysis while being more
conservative in the statement-local analysis.
- Added a `RunningUnderLifetimeSafety` boolean parameter to
`shouldTrackImplicitObjectArg` function to distinguish between lifetime
safety analysis and Sema's statement-local analysis
- Enhanced tracking of dereference operators for GSL pointers in STL:
- Now tracks both `operator*` and `operator->` when running under
lifetime safety analysis
- Avoids tracking these operators in statement-local analysis to prevent
false positives