Don't start a searcher thread unless that job has keyword lists.
Concurrency refactoring; SearchJobInfo now controls currentResults.
Don't start a new worker if the workerRunning flag is set
doFinalSearch() should now wait if the given job still has a search worker running before launching the final search worker.