SI-7777 applyDynamic macro fails for nested application

Interplay between the insertApply desugaring and the invokeDynamic desugarings
is already quite brittle, but the real fun begins when macros crash the party.

The proposed patch enriches the `isDesugaredApply` check performed in
`mkInvoke`, the invokeDynamic desugarer, and makes sure that everything
is safe and sound in the macroland.
SI-8006 prevents infinite applyDynamicNamed desugarings

Since mkInvoke, the applyDynamic/selectDynamic/etc desugarer, is disconnected
from typedNamedApply, the applyDynamicNamed argument rewriter, the latter
doesn’t know whether it needs to apply the rewriting because the application
has just been desugared or it needs to hold on because it’s already performed
a desugaring on this tree.

This commit introduces the attachment that links these translation facilities,
preventing infinite applyDynamicNamed desugarings.
Merge pull request #3309 from xeno-by/topic/expand-dynamic

SI-7777 SI-8006 assorted fixes for dynamics