[libc++] Fix incorrect typeinfo comparison on ARM64
We are supposed to use deep string comparison only when both the LHS and the RHS can't be guaranteed to be unique, however the current implementation was using deep comparison when either the LHS or the RHS can't be guaranteed to be unique.
While we're at it, also improve the documentation of that ABI, and make the implementation follow the documentation more closely.
See https://lists.llvm.org/pipermail/libcxx-dev/2020-December/001060.html.