[XLA:GPU][TileAnalysis] Re-think symbolic tiles and their parameter extraction.
[XLA:GPU][TileAnalysis] Re-think symbolic tiles and their parameter extraction.

Previously, symbolic tiles could take offsets and strides as input parameters.
While there is a use for it at codegen time (e.g. to use the symbolic tile to
directly produce the overall offset for loading a parameter, and similarly for
the strides), the benefit is marginal. However, it turns out to be highly 
problematic for more important use cases, such as concrete size propagation;
indeed, a combination of a non-trivial reshape with an unknown stride gives
rise to stride-dependent sizes---thus completely preventing concrete size
propagation until a constant stride is chosen.

If we need to choose a constant stride anyway, then there is no use in carrying
around this parameter. There is likely no such problem with offsets, but we
likewise elide them from the list of input parameters in order to simplify
things.

We take this opportunity to simplify our extraction logic as well, and
implement logic able to handle merge reshapes correctly. Thanks to
the simplification of the structure of symbolic tiles, we can now make stronger
assumptions about our intermediate expressions (e.g. where constants appear),
and as a result the logic is much easier to follow.
