[c++17] Implement P0145R3 during constant evaluation.
Ensure that we evaluate assignment and compound-assignment
right-to-left, and array subscripting left-to-right.
Fixes PR47724.
This is a re-commit of ded79be6, reverted in 37c74dfe, with a fix and test
for the crasher bug previously introduced.