Applies cloning decisions to the IR, cloning functions and updating
calls. For Regular LTO, the IR is updated directly during function
assignment, whereas for ThinLTO it is recorded in the summary index and
applied to the IR via the index during the ThinLTO backend. The function
assignment and cloning proceeds greedily, and we create new clones as
needed when we find an incompatible assignment of function clones to
callsite clones (i.e. when different callers need to invoke different
combinations of callsite clones).
Depends on D140949.