C function Logos directives

Added %hookf and %origf directives for hooking C functions while supporting groups and using a variant of %orig.
%hookf takes a variadic number of arguments: the function return type, the function name, the function argument list. It generates the original function function pointer from these values and the current group.
%hookf takes a variadic number to pass to the original function, which is calculated from saving the current function name in %hookf and the current group.
Look at how `%log` and `%orig` parse things containing parens and commas. Right now, your code will break for `%hookf(int, cool, void(*)(int,int)) and yield `void(*)int` and `int)` -- that is, if it doesn't yield `void(*` and a syntax error!