Fix "diff -r X:Y" over tunnel agent.  The second session was holding open the first session's pipes, causing a close of the first session to hang.
Fix "diff -r X:Y" over tunnel agent.  The second session was holding
open the first session's pipes, causing a close of the first session
to hang.

(cleanup_file, ra_svn_open): Set up a child cleanup handler on the
  tunnel agent's pipes.
(ra_svn_finish_report, ra_svn_checkout): After calling
  svn_ra_svn_drive_editor, some data might be hanging around in the
  write buffer in response to the server's close-edit or abort-edit
  call.  Flush it so we don't get a double-flush bug from the child
  cleanup handler.


git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@844327 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion