I stumbled upon the operator new and operator new[] tests while
investigating an issue with operator new when exceptions are disabled,
and I realized that our test coverage was incomplete. This patch refactors
all the operator new and operator new[] tests to add consistency and
better coverage for scenarios in which it should be possible to override
an operator indirectly by defining another one (for example new(size_t, nothrow)
should use new(size_t) if it has been provided).
This is intended to be a NFC setting up the terrain for some refactoring
work and bug fix in operator new.
We have this as an extension now, so we might as well enable this test for libc++ in all language versions.