More protocol 2: TUPLE1, TUPLE2, TUPLE3.

Also moved the special case for empty tuples from save() to save_tuple().
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py
index 85887ea..e37a7b0 100644
--- a/Lib/test/pickletester.py
+++ b/Lib/test/pickletester.py
@@ -281,6 +281,18 @@
         y = self.loads(s)
         self.assertEqual(x, y)
 
+    def test_short_tuples(self):
+        a = ()
+        b = (12,)
+        c = (6, 6)
+        d = (4, 4, 4)
+        e = (3, 3, 3, 3)
+        for proto in 0, 1, 2:
+            for x in a, b, c, d, e:
+                s = self.dumps(x, proto)
+                y = self.loads(s)
+                self.assertEqual(x, y, (proto, x, s, y))
+
 class AbstractPickleModuleTests(unittest.TestCase):
 
     def test_dump_closed_file(self):