Macros that expand into branches (e.g. assert!, trace!) tend to generate
multiple condition/consequent blocks that have the span of the whole macro
invocation, which is unhelpful. Keeping only the first such span seems to
give better mappings, so remove the others.
When a span corresponds to a macro invocation that is visible from the
function body, truncate it to just the macro name plus !.
This seems to give better results for code that uses macros.