Fix -use-nullptr problems with assert()

If a cast expression (NullToPointer) is detected in a function-like macro
parameter, we should use the spelling location instead of the expansion
location. Using SourceManager::getFileLoc() fixes this problem.

Also added testcases for this bug.

Fixes: PR15279
Author: Tareq A Siraj <tareq.a.siraj@intel.com>
Reviewer: klimek


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