Allow mkdir helper to skip parent errors

Our `git_futils_mkdir` helper was failing if a parent directory was not accessible even if the child directory could be created. This changes the helper to keep trying child directories even when the parent creation has an access error.

This should fix #2486 and related problems.

This has a minor side effect that we will do fewer `stat` calls on intermediate directories when creating a full path, but more `chmod` calls when used with `GIT_MKDIR_CHMOD_PATH` (since we will not have done the `stat` and won't know if we can skip the `chmod` or not). I suspect this will have no real world impact, but I wanted to point it out.