[clang][AST] Don't give `NestedNameSpecifier` pointer identity in `DynTypedNode` (#233153)
Starting in 91cdd35008e9, `NestedNameSpecifier` is a value-type handle,
and `DynTypedNode` stores it by value. However, `hasPointerIdentity()`
was not updated to return `false` for it, so users relying on the API to
determine whether `DynTypedNode::get` returns a pointer to storage
within `DynTypedNode` get the wrong answer for `NestedNameSpecifier`.
This commit updates `hasPointerIdentity()` to return `false` for
`NestedNameSpecifier`.
Subsequently, `getMemoizationData()`'s behavior changes, returning a
null pointer now. As a result, `DynTypedNode::operator<`, `opeartor==`,
and `getHashValue` are also updated to handle `NestedNameSpecifier`.