Duplicate macro arguments before passing into the macro

This means that the macro's mutation of those trees are not
visible in the presentation compiler after we discard the expansion
and instead retain the expandee.
Unify configuration of macro expansion.

    // expand macros as per normal
    -Ymacro-expand:normal

    // don't expand the macro, takes the place of -Ymacro-no-expand
    -Ymacro-expand:none

    // expand macros to compute type and emit warnings,
    // but retain expandee
    -Ymacro-expand:discard

This leaves to door ajar for a new option:

    // Don't expand blackbox macros; expand whitebox
    // but retain expandee
    -Ymacro-expand:discard-whitebox-only

The existing test for SI-6812 has been duplicated. One copy exercises
the now-deprecated -Ymacro-no-expand, and the other uses the new
option.