clone: fix -Wmaybe-uninitialized warning
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.
Fix diff output for renames and copies

If you use rename detection, the renamed and copied files would
not show any text diffs because the function that decides if
data should be loaded didn't know which sides of the diff to
load for those cases.

This adds a test that looks at the patch generated for diff
entries that are COPIED or RENAMED.
Fix some memory leaks
Merge pull request #1573 from nulltoken/fix/leaks

Fix some memory leaks
Merge pull request #1572 from arrbee/diff-patch-with-rename

Fix diff output for renames and copies
Merge pull request #1571 from arrbee/what-if-ignorecase-lies

Improve ignore handling in git_status_file