Refactor Usenullptr matcher to avoid duplication

Previously UseNullptr matched separately implicit and explicit casts to nullptr,
now it matches casts that either are implict casts to nullptr or have an
implicit cast to nullptr within.

Also fixes PR15572 since the same macro replacement logic is applied to implicit
and explicit casts.




git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@178494 91177308-0d34-0410-b5e6-96231b3b80d8