[ADT] Deprecate the redirection from SmallSet to SmallPtrSet (Take 2) (#155078)
This patch deprecates the SmallSet specialization for pointer types,
which redirects to SmallPtrSet.
My previous attempt in #154891 broke downstream users. Adding
user-defined constructors with LLVM_DEPRECATED inadvertently caused
the compiler to delete the copy and move assignment operators.
This iteration sidesteps the "Rule of Five" issue entirely by
introducing an intermediate class, DeprecatedSmallSet. The
deprecation attribute is attached to this new class, and SmallSet
specialization inherits from it.