Merged the int/long unification branch, by very crude means (sorry Thomas!).
I banged on the code (beyond what's in that branch) to make fewer tests fail;
the only tests that fail now are:
  test_descr -- can't pickle ints?!
  test_pickletools -- ???
  test_socket -- See python.org/sf/1619659
  test_sqlite -- ???
I'll deal with those later.
diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py
index 1c4970f..aa6525e 100644
--- a/Lib/test/test_optparse.py
+++ b/Lib/test/test_optparse.py
@@ -1600,7 +1600,7 @@
         self.assertRaises(
             _parse_num, ("0xOoops", long), {},
             ValueError,
-            re.compile(r"invalid literal for long().*: '?0xOoops'?"))
+            re.compile(r"invalid literal for int().*: '?0xOoops'?"))
 
     def test_parse_num_ok(self):
         self.assertEqual(_parse_num("0", int), 0)
@@ -1618,9 +1618,9 @@
         self.assertParseFail(["-n008"],
                              "option -n: invalid integer value: '008'")
         self.assertParseFail(["-l0b0123"],
-                             "option -l: invalid long integer value: '0b0123'")
+                             "option -l: invalid integer value: '0b0123'")
         self.assertParseFail(["-l", "0x12x"],
-                             "option -l: invalid long integer value: '0x12x'")
+                             "option -l: invalid integer value: '0x12x'")
 
 
 def _testclasses():