In reaction to the issues raised by Richard in https://llvm.org/D109066,
this commit does not apply P1951 as a DR in previous standard modes,
since it breaks valid code.
I do believe it should be applied as a DR, however ideally we'd get some
sort of statement from the Committee to this effect (and all implementations
would behave consistently). In the meantime, only implement P1951 starting
with C++23 -- we can always come back and apply it as a DR if that's what
the Committee says.
FWIW, the paired assertions (e.g. lines 116+117) seem like overkill, since right now obviously it's impossible ever to have wasCopyInit && wasMoveInit. I wonder if you meant to do, like,