tt(PUSHMACRO) is used to start another lifetime for a macro, pushing its
current definition on a stack. A stack is available for each individual macro.

tt(PUSHMACRO) expects three arguments: the name of the macro to push, the
number of its arguments after pushing (which may be different from the number
of arguments interpreted by the pushed macro)  and its new
definition. 

So, tt(PUSHMACRO) is used exactly like link(DEFINEMACRO)(DEFINEMACRO), but
redefines a current macro (or define a new macro if no macro was defined by
the name specified as its first argument.

    Example:
        verb(
    DEFINEMACRO(Hello)(1)(Hello, ARG1, this is a macro definition)
    Hello(Karel)
    PUSHMACRO(Hello)(1)(Hello, ARG1, this is the new definition)
    Hello(Karel)
    POPMACRO(Hello)
    Hello(Karel)
    COMMENT(The third activation of Hello() produces the same output
            as the first activation)
        )
