Total rewrite taken from MDIndexing

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gworkspace/trunk@36176 72102866-910b-0410-8b05-ffd578937521