Support calling `ls` directly on files

I was previously and naively calling `ioutil.ReadDir()` on
whatever was passed in, even if it was a file. This commit will
check whether we are calling `ls` on a file or directory, and
handle it appropriately.