Don't report status on named pipes

Git skips entries in directories that are not `S_ISDIR`, `S_ISREG`, or `S_ISLNK`, so let's make libgit2 do the same thing.

Also cleaned up some redundant code in `git_path_dirload_with_stat` now that it ignores files that it gets a `stat` error on.

There is probably a Windows equivalent for this test, but I wasn't sure what it would be...