Cpp: Changed calling convention for apply_define(). Macro arguments are now sent as an array of strings on the stack, instead of in a malloced array of structs. This removes the need for the stage where the malloced array was converted into an array of strings. This also removes the argument checking at parse time (as the checking at expansion time should be sufficient).