We currently have three ways to check whether a stack can be realigned. TargetFrameInfo, MachineFrameInfo, and TargetRegisterInfo. This patch attempts to standardize on one of them (TRI) as the source of truth.
This patch does change behaviour in corner-cases. Previously, an overaligned static alloc in a no-realign-stack function had it's alignment silently ignored. Now, the frame isn't stack object isn't dynamically aligned on entry, but instead becomes a variable sized frame around the alloca scope. (i.e. it's treated as a dynamic alloca)