Fixed #334

If a single file was being watched, it would use the tryBaseDir method to work out the directory, but fail as a pattern so it would return the base directory - which is too much. Now we test if that string is a real file or a directory, and if it is, it returns *that* back out.