Fixed wrong usage of token pasting operator ##.
GCC compilation fixes.
Fixed parsing of comments for enum declarations.
Moved the TranslationUnit property from DeclarationContext to Declaration.
Reworked the ASTRecord functionality.
Reworked the CLI type references functionality.
Fixed the output of forward references in CLI headers.

We now use a sorted set to prevent duplicated references and have a stable ordering.
Fixed the generator to use blocks for templates and variables.

Fixes wrong whitespace between those declarations.
Improved visited checking in the ASTVisitor.

Since this is a pretty common pattern, this factors the visited checking of declarations inside the
VisitDeclaration overload. Because of this, we need to make sure we call VisitDeclaration is called (only once) instead of AlreadyVisited.
Fixed all passes for the new ASTVisitor behavior.

Added ignore and method checking code to the MoveFunctionToClass pass.
Reworked and improved checking of ignored declarations.

It improves the logic to work when certain options are enabled. We would previously accept some declarations that should be ignored.
Added support for clearing declarations between visits and fixed some passes that need it.
Improved the rename pass with fixes for visits and minor formatting nits.
Fixed the FunctionToStaticMethod pass to make sure we do not apply it when the function and class have different translation units. This can be improved in the future, for which I left a TODO.
Formatting fixes.
Fixed delegate generation regression and added some tests.
Improved the formatting and diagnostic in ResolveIncompleteDecls pass.
Removed dependent types checking from type maps.

This fixes a regression, more work might still be needed in this area.
Reworked the way we generate constructors and destructors to always use the actual class name.

Fixes some problems that might happen with method declarations with names that don't match the their containing class.
Fixed a problem with class operators not being correctly promoted to class operators.

We need to check all the parameters for a possible class to promote the operators.