Enhance error messages
Add a test which reproduces questionable behaviour
Expand macros only in freeform include statements, not in quoted and bracketed ones (as defined in the C++ Standard)
Exit the resursion if the 'freeform' include body could not be reduced to either the quoted or the bracketed body form