[-Wunsafe-buffer-usage] Improve null-termination analysis on conditionals (#176262)
This commit adds two improvements to null-termination analysis on
conditionals:
- perform recursive constant folding
- when the condition is not a constant, analyze both branches for
null-termination
rdar://168256816