Macro recovery
Print the macro in .compareState.
Revert macro def for error recovery.
ErrorRecovery test.
Remove macro and print macro.
Print macro to ostream instead of llvm::errs().
Remove macro and print macro header.
Remove the macros from the Macros map in the Preprocessor when reverting transaction.
Add comments and fix trailing spaces.
Release macro from cache when reverting a transaction.
Fix mangler and cache.
Improvements on Macro removal.
Fix and improve macro error recovery.
Workaround multiple DeclCollector instances.
Reduce the hacky-ness of the state collector setup.

The second compilerInstance doesn't need to collect anything, thus we don't
need to attach it to the PP.
Comment
Use the correct interface to check for emptiness.
Typo.
Remove redundant code.
When non default memory buffer is provided add a common include file.

When a CI is created with a custom membory buffer, we can just set it as the
main memory buffer, becuase when clang tries to compare the include chains it
won't find common predecessor and either will infinite-loop or crash.