[nullability] Use `isSupportedPointer()` more widely.

Also:

- Rename to `isSupportedPointerType()` for consistency with
  `QualType::isPointerType()`.

- Make the function desugar. We'll want to desugar in most places we use this,
  and leaving the desugaring to the caller means the caller might forget.
  We do eventually want a version that doesn't desugar, so that we can decide
  whether we can rewrite a type or not, but that version should probably deal
  in `TypeLoc` instead of `QualType`.

- Add a corresponding AST matcher (called just `isSupportedPointer()` for
  consistency with `ast_matchers::isAnyPointer()`)

Use `isSupportedPointerType()` wherever we had been using `isPointerType()` or
`isAnyPointerType()`. (The latter was in widespread use but also includes
Objective-C pointers, which we don't currently actually support.)

PiperOrigin-RevId: 559377210
Change-Id: I69b44ce2ca78cf8e47a1061255ab797bfb68e374
diff --git a/nullability/type_nullability.cc b/nullability/type_nullability.cc
index 81c07fe..af998f3 100644
--- a/nullability/type_nullability.cc
+++ b/nullability/type_nullability.cc
@@ -28,7 +28,7 @@
 
 namespace clang::tidy::nullability {
 
-bool isSupportedPointer(QualType T) { return isa<PointerType>(T); }
+bool isSupportedPointerType(QualType T) { return T->isPointerType(); }
 
 PointerTypeNullability PointerTypeNullability::createSymbolic(
     dataflow::Arena &A) {