[xla:gpu] Support tupled GEMM with DUS
[xla:gpu] Support tupled GEMM with DUS

Separate sliced operand chains from sliced user chains to support different scenarios of tupled GEMM -> DUS.
Sliced operand chains always contain the original hero ops (GEMM or custom call) as their last elements.
Sliced user chains contain dataflow sequences from different users of the original hero ops down to the DUS ops.
For hero ops returning tuples, we need to support cases where not all elements of the tuples are used, hence separating dataflow sequences for different users (i.e. get-tuple-elements) of the hero ops.

FUTURE_COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/tensorflow/pull/64619 from rascani:disable_shlo_legacy_build d87b5650899ff9d0f5eb791a7b15f7bfc9f4b4c7
