revwalk: allow simplifying by first-parent

When enabled, only the first parent of each commit will be queued,
enabling a simple way of using first-parent simplification.
path: Make direach() return EUSER on callback error
odb: Teach loose backend to return EAMBIGUOUS
Merge pull request #1841 from libgit2/ntk/fix/loose_ambiguous

Make odb_loose return EAMBIGUOUS when required
Merge pull request #1838 from libgit2/cmn/first-parent

revwalk: allow simplifying by first-parent