Split off name declaration and name binding from name resolution
Ensure that nested exception handlers can't share the same name
Unbind exception handler targets in nested functions
Move loop control checks out of type inference stage
Use new name_* modules
Add IdentityDict class for reference tracking
Use IdentityDict in TypeLookup
Rename name_declaration.Context to Declarations
Clarify names used when resolving names and finding declarations
Add TODO
Only export names that are definitely bound
Remove old TODO
Remove TODO
Remove completed TODO
Implement name binding for with statements
Factor out common name binding test code