status: fix handling of filenames with special prefixes

Fix libgit2/libgit2sharp#379
Initial blame API
Change API based on @arrbee's feedback
Introduce git_blame_buffer
Fix spelling, remove pesky consts
Unbreak git_remote_ls on a local transport after disconnecting.
Make sure we don't leak memory again.
Revert "Work around reparse point stat issues"

This reverts commit 32c12ea6a9cafd76a746af2e2be9366c95752f5b.
Correctly handle junctions

A junction has S_IFDIR | S_IFLNK set, however, only one makes sense.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
Prefer younger merge bases over older ones.

git-core prefers younger merge bases over older ones in case that multiple valid merge bases exists.
Merge pull request #1680 from csware/win32-junction

Correctly handle win32 junctions
Merge pull request #1678 from arthurschreiber/unbreak-local-ls-after-disconnect

Unbreak git_remote_ls on a local transport after disconnecting.
Add a test case.
Merge pull request #1681 from arthurschreiber/patch-1

Prefer younger merge bases over older ones.
Fail on unmodified deltas when they're unexpected
Fix bug marking submodule diffs as unmodified

There was a bug where submodules whose HEAD had not been moved
were being marked as having an UNMODIFIED delta record instead
of being left MODIFIED.  This fixes that and fixes the tests to
notice if a submodule has been incorrectly marked as UNMODIFIED.
Merge pull request #1684 from libgit2/fix-dirty-submodule-diff

Dirty submodules do not correctly appear in diffs
Test submodules with empty index or orphaned head

In both of these cases, the submodule data should still be loaded
just (obviously) without the data that comes from either the index
or the HEAD.

This fixes a bug in the orphaned head case.
Merge pull request #1688 from arrbee/submodule-load-ignore-orphaned-head

Test submodules with empty index or orphaned head
Fix compilation warnings