cpp: Overhaul macro expansion to be more like C and less like FB