bpo-29592: site: skip abs_paths() when it's redundant (GH-167)

Call abs_paths() only if removeduppaths() changed sys.path
diff --git a/Lib/site.py b/Lib/site.py
index 0fc9200..4f96ca9 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -522,8 +522,13 @@
     """
     global ENABLE_USER_SITE
 
-    abs_paths()
+    orig_path = sys.path[:]
     known_paths = removeduppaths()
+    if orig_path != sys.path:
+        # removeduppaths() might make sys.path absolute.
+        # fix __file__ and __cached__ of already imported modules too.
+        abs_paths()
+
     known_paths = venv(known_paths)
     if ENABLE_USER_SITE is None:
         ENABLE_USER_SITE = check_enableusersite()