Make odb_loose return EAMBIGUOUS when required

The error code was previously overwritten by a standard -1 in `git_path_direach()`.

As a freebie, make `git_path_direach()` honor the existing documentation and return `EUSER` when the callback returns a non zero output.