Backport .travis.yml
Merge branch 'development'

Conflicts:
	.travis.yml
Reduce the number of unnecessary objects in pushed packs
Convert enqueue_object to a function
Fix dumb mistake in the comparison function
branch: rename 'tracking' to 'upstream'

The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
branch: refactor git_branch_remote_name

Return the size we'd need to write to instead of simply an
error. Split the function into two to be used later by the upstream
configuration functions.
Propose unified rev-parse API
Implement unified git_revparse
Updated link to Haskell bindings

The old one hasn't been updated in a long time. This one is current.
Deprecate git_revparse_single and _rangelike
Add rev-list example to makefiles
Merge pull request #1458 from maxpow4h/patch-1

Updated link to Haskell bindings
Fix submodule dirty states not showing if submodules comes before files, or there are only dirty submodules but no changed files

GIT_DIFF_PATCH_DIFFABLE was not set, so the diff content was not shown

When submodule is dirty, the hash may be the same, but the length is different because -dirty is appended

We can therefore compare the length or hash
Fix clang warnings and improve checks
Tests and more fixes for submodule diffs

This adds tests for diffs with submodules in them and (perhaps
unsurprisingly) requires further fixes to be made.  Specifically,
this fixes:

- when considering if a submodule is dirty in the workdir, it was
  being treated as dirty even if only the index was dirty.
- git_diff_patch_to_str (and git_diff_patch_print) were "printing"
  the headers for files (and submodules) that were unmodified or
  had no meaningful content.
- added comment to previous fix and removed unneeded parens.
Merge pull request #1460 from arrbee/fix-dirty-submodules-diff

Submodule diff tests and fixes
examples: Don't print weird characters
Merge pull request #1424 from phkelley/efficient_push

Reduce the number of unnecessary objects in pushed packs
object: Export git_object_dup