[Syntax] Do not glue multiple empty PP expansions to a single mapping
This change makes sure we have a single mapping for each macro expansion,
even if the result of expansion was empty.
To achieve that, we take information from PPCallbacks::MacroExpands into
account. Previously we relied only on source locations of expanded tokens.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D62953