Remove restriction on tuple shapes in hlo_to_elemental_mlir.
Remove restriction on tuple shapes in hlo_to_elemental_mlir.

- fix input slices fusion (now it actually does what the legacy
  version did). I'm not sure this fusion type is particularly
  useful though (unless the input is the same for all slices).
- fix loop fusion (support root tuples with bitcasts)
- disable side outputs for reduction and transpose fusions: it
  turns out they were not tested because of the aforementioned
  restriction, so they don't actually work.
