This patch is related to my proposal for separating machine IR from CodeGen: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-May/086063.html.
This patch moves the SplitCriticalEdge method out of MachineBasicBlock class so that MachineBasicBlock.cpp won't have to include several header
files that declare passes that won't be moved from CodeGen to the new Machine IR library.