[xla:gpu] Support a new method to pipeline Send-Recv chains.
[xla:gpu] Support a new method to pipeline Send-Recv chains.

We are planning to have the compiler to use a new method to pipeline Send-Recv
chains for performance. With the new pipelining approach, we will peel off the
first Recv and Send as well as the last Recv-done and Send-done of a while-body
in a calling computation of the while instruction. In the while-body
computation, we will have a Recv-done and a Send-done ordered before their
corresponding Recv and Send.

Here we are changing the thunk emitter to support this new code pattern.
