Added SymbolRepository. Interfaces may now properly implement other interfaces.
AST is now duck-typed, i.e. an AST node implements an interface if it provides all the required attributes. This allows for cleaner code.