Add a folder to the `affine.parallel` op so that loop bounds expressions are canonicalized.

Additionally, a new `AffineParallelNormalizePass` is added to adjust `affine.parallel` ops so that the lower bound is always `0` and the upper bound always represents a range with a step size of `1`.