Cpp: Added some optional parameters to define_macro(). Renumber the CPP_MACRO_* values, so that the ones useful for users (CPP_MACRO_VARARGS and CPP_MACRO_KEEP_NL) come first. define_macro() now accepts two additional optional arguments; numargs and flags.