Don't raise MemoryError in keys() when the database is empty.

This fixes SF bug #410146 (python 2.1b shelve is broken).
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index ecfb653..be50208 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -427,7 +427,7 @@
 		if (data != NULL) memcpy(data,krec.data,krec.size);
 	}
 	BSDDB_END_SAVE(dp)
-	if (data==NULL) return PyErr_NoMemory();
+	if (status == 0 && data==NULL) return PyErr_NoMemory();
 	while (status == 0) {
 		if (dp->di_type == DB_RECNO)
 			item = PyInt_FromLong(*((int*)data));