Usage: /stack (PUSH|POP|LIST) (ON|ALIAS|ASSIGN|SET) [NAME]

The STACK command allows you to place ONs, ALIASes,
ASSIGNs and SETs onto a stack so that you can retrieve them
later intact.  It is very useful in aliases that wish to make
new ALIASes or ONs but do not wish to disturb or disrupt
any previously set ALIAS or ON.  Usually, you 
	STACK PUSH ON XXX to place an ON onto the stack
and	STACK POP ON XXX to remove that ON from the stack.

Example Program:

	ALIAS deban {
		@ bans = []
		STACK push on 367
		STACK push on 368
		ON 367 * @ bans #= [ $$2]
		ON 368 * {
			STACK pop on 367
			STACK pop on 368
			FE ($bans) x y z {
				IF (z) {MODE -bbb $x $y $z}
				{IF (y) {MODE -bb $x $y}
					    {MODE -b $x} }
			}
		}
	}

If a variable, hook or alias that doesn't exist is pushed onto a stack
(thus an attempt to push the default value), the default is correctly
restored when it is popped back off.

Only the "ON" "ASSIGN" and "ALIAS" stacks are implemented at this
point.  the "LIST" adverb probably doesnt work properly yet.

See also:
	ALIAS
	ON
	ASSIGN

