Caller saved regs differ between SysV and Win64. Use the tail call available set to scavenge from.
Refactor register info to create new helper to get at tail call GPRs. Added a new test case for windows. Fixed up a number of X64 tests since now RCX is preferred over RDX on SysV.
This doesn't need to be virtual, X86FrameLowering already knows that TRI is an X86RegisterInfo. This whole refactoring should be internal to the X86 backend.