Actually define user macros in their respective file and add support for resolving them. Also added support for names to macro arguments and updated the built-in macros.