Simplify SplitCSR code:
- Move generic legality checking code from SelectionDAG::runOnMachineFunction() to TargetLoweringBase::mayUseSplitCSR().
- Avoid TargetLoweringInfo::supportSplitCSR() and initializeSplitCSR() callbacks simply by performing the lowering as part of TargetLowering::LowerFormals()
- Avoid TargetLoweringInfo::insertCopiesSplitCSR() callback by using MachingFunction::addLiveIn() to get copies to vregs at the entry block and by creating CopyFromReg/CopyToReg nodes when lowering the return in LowerReturn. Provide a convenience function addCalleeSaveRegOps() for this.
This will be used to handle parameters passed in callee saves with the SplitCSR logic.
This is the only place mentioning SplitCSR, please add more comments here.