Bug 8527 - multiple compileall calls produce cascading __pycache__ directories.

* Patch contributed by Arfrever Frehtes Taifersar Arahesis.
* Test added by Barry

Also, improve Makefile's deletion of __pycache__ directories so e.g. 'make
distclean' doesn't fail if no __pycache__ directories exist.
diff --git a/Lib/compileall.py b/Lib/compileall.py
index d9d7816..be9e2ad 100644
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -45,6 +45,8 @@
     names.sort()
     success = 1
     for name in names:
+        if name == '__pycache__':
+            continue
         fullname = os.path.join(dir, name)
         if ddir is not None:
             dfile = os.path.join(ddir, name)