This adds support for -tailcallopt tail calls to CallLowering. This piggy-backs off the changes from D67577, since doing it without a bit of refactoring gets extremely ugly.
Support is basically ported from AArch64ISelLowering. The main difference here is that tail calls in -tailcallopt change the ABI, so there's some extra bookkeeping for the stack.
Show that we are correctly lowering these by updating tail-call.ll.
Also show that we don't do anything strange in general by updating fastcc-reserved.ll, which passes -tailcallopt, but doesn't emit any tail calls.