DataTypes: Adds parsing capabilities to LexicalAnalyzer and ParsedDeclaration to handle namespace syntax
DataTypes: Adds a map<string, TypeDictionary *> to the TypeDictionary class to represent nested namespaces of any depth
Adjusted TypeDictionary's add, lookup, validate, etc. to handle this
ICG: Reorganizes ICG's AST visitor structure to a better design
Handle the type of the visitor in the correct visitor class only, to avoid creating dependencies between the visitors
For example, the top level AST visitor should create a ClassVisitor when it encounters a ClassDecl, and then tell the ClassVisitor to do it's thing, and get the result. Do NOT do any operation on the ClassVisitor (next level visitor) other than this.
ICG: Use the correct fields in traversal to pull the fully qualified typename always.
Add unit tests for all of these things, and integration test in test/namespaces
Closes #3
Add support for namespaces.
Implementation details:
Add unit tests for all of these things, and integration test in test/namespaces