[clang][cli] Round-trip the whole CompilerInvocation
Finally, this patch moves from round-tripping one CompilerInvocation at a time to round-tripping the invocation as a whole.
This patch includes only the code required to make round-tripping the whole invocation work. More cleanups will be done in a follow-up patch.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D96280