Shutdown subprocess debugger and associated Proxies/Adapters when closing
the Idle debugger.

M PyShell.py       : Call RemoteDebugger.close_remote_debugger()
M RemoteDebugger.py: Add close_remote_debugger(); further polish code used
                     to start the debugger sections.
M rpc.py           : Add comments on Idlefork methods register(), unregister()
                     comment out unused methods
M run.py           : Add stop_the_debugger(); polish code
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index 6fb7f69..4771d2e 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -25,6 +25,7 @@
 import idlever
 
 import rpc
+import RemoteDebugger
 
 # XX hardwire this for now, remove later  KBK 09Jun02
 use_subprocess = 1 # Set to 1 to spawn subprocess for command execution
@@ -89,8 +90,7 @@
 
 
 class PyShellEditorWindow(EditorWindow):
-
-    # Regular text edit window when a shell is present
+    "Regular text edit window when a shell is present"
     # XXX ought to merge with regular editor window
 
     def __init__(self, *args):
@@ -532,6 +532,8 @@
         if db:
             self.interp.setdebugger(None)
             db.close()
+            if self.interp.rpcclt:
+                RemoteDebugger.close_remote_debugger(self.interp.rpcclt)
             self.resetoutput()
             self.console.write("[DEBUG OFF]\n")
             sys.ps1 = ">>> "
@@ -551,7 +553,6 @@
         self.set_debugger_indicator()
 
     def open_remote_debugger(self):
-        import RemoteDebugger
         gui = RemoteDebugger.start_remote_debugger(self.interp.rpcclt, self)
         self.interp.setdebugger(gui)
         sys.ps1 = "[DEBUG ON]\n>>> "
@@ -559,7 +560,7 @@
         self.set_debugger_indicator()
 
     def beginexecuting(self):
-        # Helper for ModifiedInterpreter
+        "Helper for ModifiedInterpreter"
         self.resetoutput()
         self.executing = 1
         ##self._cancel_check = self.cancel_check