[libc++][hardening] Introduce assertion semantics. (#149459)

Assertion semantics closely mimic C++26 Contracts evaluation semantics.
This brings our implementation closer in line with C++26 Library Hardening
(one particular benefit is that using the `observe` semantic makes adopting
hardening easier for projects).

NOKEYCHECK=True
GitOrigin-RevId: 3eee9fc2c4d1973904b1a26fa96a8c7473ef6a5e
1 file changed