[libc++] Workaround clang bug in __has_unique_object_representations (#95314)

Clang currently has a bug in the __has_unique_object_representations
builtin where it doesn't provide consistent answers based on the order
of instantiation of templates. This was reported as #95311.

This patch adds a workaround in libc++ to avoid breaking users until
Clang has been fixed. It also revamps the tests a bit.

NOKEYCHECK=True
GitOrigin-RevId: fd001c16fed19249eec47d16ade9ad5810489c37
3 files changed