preprocessor: The output of -dM goes to stdout, not stderr.

This is, what gcc does.
preprocessor: Correctly print function-like macros.
preprocessor: Correct indentation.
preprocessor: Reduce code duplication.