Let's move some logic from _DEFINE_MAIN_FUNCTION() and other places in main-func.h into functions that we implement in main-func.c to allow moving some included headers from the header to the .c file.