This change builds up on http://reviews.llvm.org/D7756
It teaches lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.results for invoke statepoints.
Also it extracts getCopyFromRegs helper function in SelectionDAGBuilder as we need to be able to customize type of the register exported from basic block during lowering of gc.result.
I'm a bit uncomfortable signing off on this part of the change since I'm unfamiliar with the details of the codepath. I'll ask that you wait for a signoff from someone more familiar with SelectionDAG as a whole.