[Chapel Merge] Deprecate+better errors for | & ^ op= on rectangul

Branch: refs/heads/main
Revision: f616060
Author: vasslitvinov
Link: Unavailable
Log Message:

Merge pull request #19103 from vasslitvinov/domain-binop-err

Deprecate+better errors for | & ^ op= on rectangular domains

This PR implements an action item from the domain module review,
where we decided to disallow | & ^ on rectangular domains.
For this release these are deprecated. We will convert them
to compilation errors in a future release, unless we receive
opposing requests from users.
Given that |= &= ^= on rectangular domains already generate
compile-time errors, this PR makes these error messages clear.

It adds tests of the deprecated warnings and the improved error messages.
A couple of .good/.bad files are adjusted also to account for a change
in program AST and the number of available candidates.

While there: move += and -= on (domain,idx) from ChapelBase into ChapelDomain
as that is where they belong.
Archaeology: they were added initially in cd9b794b5f
and had been in ChapelBase since then.

r: @dlongnecke-cray

Modified Files:
A test/deprecated/domain-or-and-xor.chpl

A test/deprecated/domain-or-and-xor.good
A test/domains/compilerErrors/rect-and-eq.chpl
A test/domains/compilerErrors/rect-and-eq.good
A test/domains/compilerErrors/rect-or-eq.chpl
A test/domains/compilerErrors/rect-or-eq.good
A test/domains/compilerErrors/rect-xor-eq.chpl
A test/domains/compilerErrors/rect-xor-eq.good
M modules/internal/ChapelBase.chpl
M modules/internal/ChapelDomain.chpl
M test/expressions/if-expr/if-loop-const.bad
M test/visibility/except/operatorsExceptions/exceptAnd.good
M test/visibility/except/operatorsExceptions/exceptOr.good
M test/visibility/except/operatorsExceptions/exceptXor.good

Compare: https://github.com/chapel-lang/chapel/compare/4865d4ed0f85...f616060d6860