Modernize modulefinder module and tests a bit.

The tests don’t use an internal distutils function anymore, and use
regular assertEqual with sorted lists instead of a convoluted manual
diff.
diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py
index f033ba9..da5b56d 100644
--- a/Lib/modulefinder.py
+++ b/Lib/modulefinder.py
@@ -1,6 +1,5 @@
 """Find modules used by a script, using introspection."""
 
-from __future__ import generators
 import dis
 import imp
 import marshal
@@ -9,8 +8,6 @@
 import types
 import struct
 
-READ_MODE = "rU"
-
 # XXX Clean up once str8's cstor matches bytes.
 LOAD_CONST = bytes([dis.opname.index('LOAD_CONST')])
 IMPORT_NAME = bytes([dis.opname.index('IMPORT_NAME')])
@@ -29,8 +26,7 @@
 
 # A Public interface
 def AddPackagePath(packagename, path):
-    paths = packagePathMap.get(packagename, [])
-    paths.append(path)
+    paths = packagePathMap.setdefault(packagename, []).append(path)
     packagePathMap[packagename] = paths
 
 replacePackageMap = {}
@@ -106,14 +102,14 @@
 
     def run_script(self, pathname):
         self.msg(2, "run_script", pathname)
-        with open(pathname, READ_MODE) as fp:
+        with open(pathname) as fp:
             stuff = ("", "r", imp.PY_SOURCE)
             self.load_module('__main__', fp, pathname, stuff)
 
     def load_file(self, pathname):
         dir, name = os.path.split(pathname)
         name, ext = os.path.splitext(name)
-        with open(pathname, READ_MODE) as fp:
+        with open(pathname) as fp:
             stuff = (ext, "r", imp.PY_SOURCE)
             self.load_module(name, fp, pathname, stuff)
 
@@ -270,7 +266,8 @@
         try:
             m = self.load_module(fqname, fp, pathname, stuff)
         finally:
-            if fp: fp.close()
+            if fp:
+                fp.close()
         if parent:
             setattr(parent, partname, m)
         self.msgout(3, "import_module ->", m)
@@ -662,4 +659,4 @@
     try:
         mf = test()
     except KeyboardInterrupt:
-        print("\n[interrupt]")
+        print("\n[interrupted]")