Added comprehensive macro arg usage logic to Use-Nullptr Transform

If a NullTo(Member)Pointer cast results from a macro arg expansion, all uses of
the arg must result in such casts or else the macro arg cannot be replaced with
'nullptr' safely. This revision adds logic and tests to ensure the safety of
replacing macro args in the Use-Nullptr Transform.

Fixes: PR15816


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