Fix 2.1 nested scopes crash reported by Evan Simpson

The new test case demonstrates the bug.  Be more careful in
symtable_resolve_free() to add a var to cells or frees only if it
won't be added under some other rule.

XXX Add new assertion that will catch this bug.
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 358c45a..c42d881 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -436,3 +436,14 @@
 del d['h']
 verify(d == {'x': 2, 'y': 7, 'w': 6})
 
+print "19. var is bound and free in class"
+
+def f(x):
+    class C:
+        def m(self):
+            return x
+        a = x
+    return C
+
+inst = f(3)()
+verify(inst.a == inst.m())