Fix crash in Selector::exec when the initial directory doesn't exist

If the directory scanned by Selector::exec's call to FileLister::browse
doesn't exist, the FileLister object is left with 0 directories and 0
files. Selector::exec first asked whether element 0 was a file, then
after finding out it was a file, tried to access its name, at which
point it crashed in FileLister::operator[].

This was due to a bad boundary in FileLister::isFile, which returned
true beyond the end of the list.