Fix for bug 133489: compiler leaks memory

Two different but related problems:

1. PySymtable_Free() must explicitly DECREF(st->st_cur), which should
always point to the global symtable entry.  This entry is setup by the
first enter_scope() call, but there is never a corresponding
exit_scope() call.

Since each entry has a reference to scopes defined within it, the
missing DECREF caused all symtable entries to be leaked.

2. The leak here masked a separate problem with
PySymtableEntry_New().  When the requested entry was found in
st->st_symbols, the entry was returned without doing an INCREF.

And problem c) The ste_children slot was getting two copies of each
child entry, because it was populating the slot on the first and
second passes.  Now only populate on the first pass.
diff --git a/Python/symtable.c b/Python/symtable.c
index 5dc0272..0d2e324 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -13,8 +13,10 @@
 	if (k == NULL)
 		goto fail;
 	v = PyDict_GetItem(st->st_symbols, k);
-	if (v) /* XXX could check that name, type, lineno match */
-	    return v;
+	if (v) /* XXX could check that name, type, lineno match */ {
+		Py_INCREF(v);
+		return v;
+	}
 	
 	ste = (PySymtableEntryObject *)PyObject_New(PySymtableEntryObject,
 						    &PySymtableEntry_Type);
@@ -69,7 +71,7 @@
 
 	if (PyDict_SetItem(st->st_symbols, ste->ste_id, (PyObject *)ste) < 0)
 	    goto fail;
-
+	
 	return (PyObject *)ste;
  fail:
 	Py_XDECREF(ste);