[mlir][Affine] Cancel delinearize_index ops fully reversed by apply (#163440)
If an `affine.apply` uses every result of an
`affine.delinearize_index` operaration in an expresession of the form
x_0 * S_0 + x_1 * S_1 + ... + x_n * S_n + ..., where S_i is the "stride"
of the i-th delinerization result (the value it got divided by), then,
that chain of additions contains the inverse of the
affine.delinearize_index.
We don't want to compose affine.delinearize_index into affine.apply in
general, since this leads to "simplifications" (mainly the `x % y => x -
(x / y) * y` rewrite) thate are bad for code generation and algetbraic
reasoning. However, if we do see an exact inverse, we should cancel it
out.