Maintain peepholer's cumlc invariant by updating the running total
everytime a LOAD_CONSTANT is encountered, created, or overwritten.

Added two tests to cover cases affected by the patch.
diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py
index 934b57c..f58fe03 100644
--- a/Lib/test/test_peepholer.py
+++ b/Lib/test/test_peepholer.py
@@ -75,9 +75,11 @@
 
     def test_folding_of_tuples_of_constants(self):
         for line, elem in (
-            ('a = 1,2,3', '((1, 2, 3))',),
-            ('("a","b","c")', "(('a', 'b', 'c'))",),
-            ('a,b,c = 1,2,3', '((1, 2, 3))',),
+            ('a = 1,2,3', '((1, 2, 3))'),
+            ('("a","b","c")', "(('a', 'b', 'c'))"),
+            ('a,b,c = 1,2,3', '((1, 2, 3))'),
+            ('(None, 1, None)', '((None, 1, None))'),
+            ('((1, 2), 3, 4)', '(((1, 2), 3, 4))'),
             ):
             asm = dis_single(line)
             self.assert_(elem in asm)
diff --git a/Python/compile.c b/Python/compile.c
index d47f8d5..be81ba0 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -586,6 +586,7 @@
 				if (PyList_GET_ITEM(consts, j) == Py_None) {
 					codestr[i] = LOAD_CONST;
 					SETARG(codestr, i, j);
+					cumlc = lastlc + 1;
 					break;
 				}
 			}
@@ -601,6 +602,7 @@
 			    !PyObject_IsTrue(PyList_GET_ITEM(consts, j)))
 				continue;
 			memset(codestr+i, NOP, 7);
+			cumlc = 0;
 			break;
 
 		/* Try to fold tuples of constants.
@@ -615,6 +617,8 @@
 			    codestr[h] == LOAD_CONST  && 
 			    ISBASICBLOCK(blocks, h, 3*(j+1))  &&
 			    tuple_of_constants(&codestr[h], j, consts)) {
+				assert(codestr[i] == LOAD_CONST);
+				cumlc = 1;
 				break;
 			}
 			/* Intentional fallthrough */