[xla][gpu] Add an HLO pass to decompose CollectivePermute with a cycle in its
[xla][gpu] Add an HLO pass to decompose CollectivePermute with a cycle in its
source-target pairs.

The HLO pass converts CollectivePermute with all participants forming a cycle
into two CollectivePermute.

We currently limit the transformation to asynchronous CollectivePermute with one
input and without any context data.

Add tests.
