Refinements #1

- Some renaming, moving of classes/packages.
- Fewer responsibilities for TypeCheckerVisitor.
- Fewer dependencies on AST in GUI components.