[xla:gpu] Move the collective-permute-decomposer and Send-Recv pipeliner to
[xla:gpu] Move the collective-permute-decomposer and Send-Recv pipeliner to
pre-fusion.

Previously, the Send-Recv pipeliner is invoked as a post-fusion pass. This is a
problem for two reasons. The loop bound analysis in the pipeliner can't
recognize loop bound in fusioned computation; performing loop pipelining before
fusion can enable better fusion decision.

The Send-Recv pipeliner relies on the collective-permute-decomposer to generate
Send-Recv operations. We now change the collective-permute-decomposer to
process collective-permute operations instead of collective-permute-operations
and move this pass along with the Send-Recv pass to pre-fusion.

FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/openxla/xla/pull/10489 from openxla:fix_cudnn_cmd_buffers 8547c674f3e0858efca9763bed586f1d796184d7
