5da7c04 introduced a regression in the NOLINT macro checking loop, replacing the
call to getImmediateExpansionRange().getBegin() with
getImmediateMacroCallerLoc(), which has similar but subtly different
behaviour.
The consequence is that NOLINTs cannot suppress diagnostics when they are
attached to a token that came from a macro argument, rather than elsewhere
in the macro expansion.
Revert to pre-patch behaviour and add test cases to cover this issue.