AST: Upgrade FunctionDef to ListNode.
AST: Proliferate NameNode.

* Attach a NameNode superclass to every node worth inserting to some
  kind of symbol table.
Symbol: Embed a NameNode inside every Entry object.

* Derive identifier from the referenced AST node.
* Drop explicit lineno/lexpos attributes.
* Adapt lib namespace initialization.
Symbol: Make Entry and Scope private subclasses of SymbolTable.
Symbol test: Initial API test.
Symbol: Rewrite identifier handling.

* Entry's identifier is now implicit; use node.name
Symbol: Insert/Lookup AST nodes instead of identifiers.
Symbol: Use node-aware interface to add line info to error messages.
Symbol test: [TDD] Add exception for symbol error.
Symbol: Add exception for symbol error.
Symbol: Drop guard from lookup_symbol.
Symbol: Drop logger functionality; use Exceptions where needed.
Symbol, Symbol Test:: Drop logger completely.