Improve ignore handling in git_status_file

The `git_status_file` API was doing a hack to deal with files that are inside ignored directories.  The status scan was not reporting any file in this case, so git_status_file would attempt a final "stat()" call, and return IGNORED if the file actually existed.

On case-insensitive filesystems where `core.ignorecase` is set incorrectly, this magic check can "succeed" and report a file as ignored when it should actually return ENOTFOUND.

Now that we have the `GIT_STATUS_OPT_RECURSE_IGNORED_DIRS` we can use that flag to make sure that `git_status_file()` will look into ignored directories and eliminate the hack completely, so we give the correct error.

Fixes #1536