[xla:gpu] Add runtime optimization using frontend attribute
[xla:gpu] Add runtime optimization using frontend attribute
_xla_send_recv_validation.

A collective-permute instruction inside a loop may not always send or receive
data that affect the output of the whole module in all iterations. Assume this
information is encoded in frontend attribute _xla_send_recv_validation attached
to the Send and Recv instructions decomposed from such a collective-permute
instruction, the runtime can use this information to skip the invocation of the
NCCL API that performs the Send and Recv operations.

Add tests.
