Separate macro expansion
Macro expansion was mixed with primitive arity checking for no good reason. They are now well distinguished phases.
This MR depends on !93 (merged) because it requires the promotion of DUP n
from macro to instruction (before Edo, the DUP
primitive could also be used as a macro so splitting this macro expansion phase was less convenient).
Edited by Raphaël Cauderlier