[libc++][hardening] Introduce assertion semantics (#148268)

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: 7345508c6febc57eaac985ef2fb14beabdc4d461
1 file changed