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
Expect standard error code from internal calls
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