[flang][OpenMP] Iteration distance should be (+|-) some-expr (#239289)
Verify that the operator is actually either + or -. Simplify the
pre-lowering representation to have intrinsic operator directly instead
of having a defined-operator.
The actual verification of the operators is fairly simple. The bulk of
the changes is related to extracting `IntrinsicOperatorT` out of
`DefinedOperatorT` into a standalone type and using it in
`LoopIterationT::Distance`. The functions that converted AST clauses
into the lowering representation needed to be updated, as well as the
references to the nested enum values which are now members of a
different class.