Added an helper to query namespaces.
Added an helper method to rename namespaces.
Improved the logic for checking for (nested/qualified) namespaces.
Added an include folder with the CLI interop helper includes.
Fixed the generation of calls to qualified functions/methods.
Added support for the GenerateLibraryNamespace option in the C# generator.
Added better support for namespaces in the C# generator.
Added preliminary support for methods in the C# generator.
Simplify some code.
Added an option and support for outputting the needed string interop includes.
Pass the driver (options) to CLITypePrinter since we need it for declaration name printing.
Fixed the declaration qualified name printing to take into account library namespaces.
Pass the current type when calling type maps.
Use a different method to ignore namespaces in CleanInvalidDeclNamesPass.

If we override the VisitNamespace we would need to duplicate the logic of walking through them and their declarations would not get processed.
Yet another fix for qualified names when generating method/function calls.
We now keep track of the namespaces where type references where found so we can generate forward references only in the containing namespaces.
Use a sorted set for forward references to make the output more deterministic between runs.
When cleaning up names, zero out the unique name index to have cleaner and deterministic output between runs.
Do not try to do struct marshaling for ignored fields.
Do not try to walk through built-in functions. This can happen when trying to parse things that include (transitively) the intrinsic Clang headers.