The contract for a provider for the `atom.directory-searcher` service
is defined by the spec of the `DefaultDirectorySearcher`.
This modifies `Workspace::scan()` to use the appropriate `DirectorySearcher`
for each member of `atom.project.getDirectories()` when scanning the workspace
for files that match the specified regex.
Old listeners were not cleaned up before new ones were being added
causing the following console message:
warning: possible EventEmitter memory leak detected.
Refs #7033