Allow progress callback to cancel fetch

This works by having the indexer watch the return
code of the callback, so will only take effect
on object boundaries.
Document callback-triggered cancellation
Enhance test coverage for transfer cancellation
Allow all non-zero returns to cancel transfers
Add unsymlinked.git test repository
diff: refactor git_diff_tree_to_tree() tests
diff: Enhance tree-to-tree diff test coverage

These tests are related to issue libgit2/libgit2sharp#196
Expect standard error code from internal calls
Add git_push_options, to set packbuilder parallelism
Add FORCE_TEXT check into git_diff_blobs code path

`git_diff_blobs` and `git_diff_blob_to_buffer` skip the step
where we check file attributes because they don't have a filename
associated with the data. Unfortunately, this meant they were also
skipping the check for the GIT_DIFF_FORCE_TEXT option and so you
could not force a diff of an apparent binary file.  This adds the
force text check into their code path.
Reorganize FORCE_TEXT diff flag checks
More diff tests with binary data
Merge pull request #1316 from ben/clone-cancel

Allow network operations to cancel
Merge pull request #1246 from arrbee/fix-force-text-for-diff-blobs

Add FORCE_TEXT check into git_diff_blobs code path
Merge pull request #1333 from phkelley/push_options

Add git_push_options, to set packbuilder parallelism
Improve MSVC compiler, linker flags
Change git2.rc to identify git.dll as VOS_NT_WINDOWS32
Merge pull request #1335 from phkelley/development

Improve MSVC compiler, linker flags
Fix a git_filebuf leak (fixes Win32 clone::can_cancel)
Fix a leak when canceling a network operation