This commit resolves the FIXME around the behavior of
Lexer::makeFileCharRange that getRangeForEdit inherits around
source locations in macro expansions.
We add a flag to getRangeForEdit that allows a caller to disable the
behavior, and instead uses the spelling location instead, with checks
to ensure that the source locations are not within a macro definition.
can you comment on the logic here? Why isn't this just "return true", since it's in a macro but not a part of a macro arg, I'd think it must be part of a macro definition.