Do not visit class template declarations directly when checking for ignored types.

If we do not this, then type maps will get called with declarations and not types.
Improved error handling of the code compiler code (and minor reformatting).
Minor code cleanup.
Added assertion for the ASTContext in the parser.
Changed CppParser to use macros to define the containers.

This way we can also define some helper methods to consume these from C#.