[xla][gpu] Change related to the handling of pipelined Send/Recv.
[xla][gpu] Change related to the handling of pipelined Send/Recv.

Previously, we relied on certain code patterns to find the Send/Recv for
Send-done/Recv-done for a pipelined loop. Now that we realize copy-insertion
can complicate such code patterns and make such pattern matching fragile.

We modify the collective-permute-decomposer to annotate the pipeline decision
on Send-done/Recv-done, in additional to Send/Recv. We also change the HLO
scheduler and verifier to use such annotation instead of relying on code
pattern matching.
