Recommit "[LTO] Use lto::backend for code generation."
This version of the patch includes a fix for the cfi failures.
(undoes the revert commit
7db390cc7738a9ba0ed7d4ca59ab6ea2e69c47e9)
It also undoes reverts of follow-up patches that also needed reverting
originally:
* [LTO] Add option enable NewPM with LTOCodeGenerator.
(undoes revert commit
0a17664b47c153aa26a0d31b4835f26375440ec6)
* [LTOCodeGenerator] Use lto::Config for options (NFC)."
(undoes revert commit
b0a8e41cfff717ff067bf63412d6edb0280608cd)