Rename diff objects and split patch.h

This makes no functional change to diff but renames a couple of
the objects and splits the new git_patch (formerly git_diff_patch)
into a new header file.
Diff API cleanup

This lays groundwork for separating formatting options from diff
creation options.  This groups the formatting flags separately
from the diff list creation flags and reorders the options.  This
also tweaks some APIs to further separate code that uses patches
from code that just looks at git_diffs.
Tweak to git_diff_delta structure for nfiles

While the base git_diff_delta structure always contains two files,
when we introduce conflict data, it will be helpful to have an
indicator when an additional file is involved.
Allowed credential types should be a bitfield
Merge pull request #1903 from ethomson/ssh

Allowed credential types should be a bitfield
Create git_diff_line and extend git_diff_hunk

Instead of having functions with so very many parameters to pass
hunk and line data, this takes the existing git_diff_hunk struct
and extends it with more hunk data, plus adds a git_diff_line.
Those structs are used to pass back hunk and line data instead of
the old APIs that took tons of parameters.

Some work that was previously only being done for git_diff_patch
creation (scanning the diff content for exact line counts) is now
done for all callbacks, but the performance difference should not
be noticable.
Fix warnings for win64
Implement patience and minimal diff flags

It seems that to implement these options, we just have to pass
the appropriate flags through to the libxdiff code taken from
core git.  So let's do it (and add a test).
Implement `git_odb_object_dup`
Fix typo
Merge pull request #1897 from libgit2/split-patch-from-diff

RFC: Proposed reworking of diff APIs
Set the correct dependencies in the pkg-config file

When linking statically, the including project needs to know what the
current library build depends on so they can link to it. Store this
information in the pkg-config file.

While here, remove claims that users need to link to zlib or libcrypto.
README: add a note about the optional dependencies
transport: let the progress output return an error

There are any number of issues that can come up in the progress
callback, and we should let the user cancel at that point as well.
Merge pull request #1906 from libgit2/cmn/net-cb-errors

transport: let the progress output return an error
Merge pull request #1905 from libgit2/cmn/list-deps

Be explicit about dependencies
Really fix the pc file

It turns out that variables have function scope by default. Let's
really set -liconv and add a few libraries that were forgotten in
the previous commit.

We also need to special-case OSX, as they ship zlib but do not provide
a pkg-config file for it.
fix typos in README.md
Merge pull request #1907 from nikai3d/patch-1

fix typos in README.md