Use pushCleanupAfterFullExpr to add lifetime.end markers for
lifetime-extended temporaries, similar to the way destructor calls get
generated.
It does not change the AST representation. It doesn't generate normal temporary
lifetime markers, since normal temporaries appear in substantially different
places, which could be done in a separate patch.