preproc: add suppport for stringify, nostrip, greedy smacro arguments
preproc: add suppport for stringify, nostrip, greedy smacro arguments

Add a few more types of smacro arguments, and clean stuff up in
process.

If declared with an &, an smacro parameter will be quoted as a string.
If declared with a +, it is a greedy/varadic parameter.
If declared with an !, don't strip whitespace and braces (useful with &).

Signed-off-by: H. Peter Anvin (Intel) <8a453bad9912ffe59bc0f0b8abe03df9be19379e@zytor.com>

techkey/nasm,techkey/nasm,techkey/nasm,techkey/nasm,techkey/nasm