base: reclaim: refactor distfile cleanup
base: reclaim: refactor distfile cleanup

 - Keep patchfiles of installed ports
 - Gather a list of files to be deleted before actually deleting
 - Use the list to interactively show the list to the user and report the size of files to be removed
 - Don't follow symlinks to avoid escaping the distfiles directory
 - Don't abort when a port can't be executed, but just skip it
 - Improve Tcl quoting in $workername eval to avoid ending up on http://wiki.tcl.tk/1726 again
 - Use a sorted list to check for presence so O(log n) binary search can be used
 - Suboptimal: Uses bytesize from port.tcl. This should be changed since it's
   an API violation. Base shouldn't depend on this code.

git-svn-id: 620571fa9b4bd0cbce9a0cf901e91ef896adbf27@128122 d073be05-634f-4543-b044-5fe20cf6d1d6

macports/macports-base,danchr/macports-base,neverpanic/macports-base,neverpanic/macports-base,danchr/macports-base,macports/macports-base