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.
This is substrate-only, unfortunately. It should be in `Logos::Generator::MobileSubstrate`. Maybe `Logos::Generator::internal::Function` should throw an error.