remove git_remote_pushspec
get last refspec in clone test
Merge pull request #1502 from nvloff/remote_refspecs_minor_fixes

Remote refspecs minor fixes
Clone: replace fetch spec with custom value
Support diff.context config
Make tree to tree diffs case sensitive

When case insensitive tree iterators were added, we started reading
the case sensitivity of the index to decide if the tree should be
case sensitive.  This is good for index-to-tree comparisons, but
for tree-to-tree comparisons, we should really default to doing a
case sensitive comparison unless the user really wants otherwise.
Add configs to repo config cache

This adds a bunch of additional config values to the repository
config value cache and makes it easier to add a simple boolean
config without creating enum values for each possible setting.

Also, this fixes a bug in git_config_refresh where the config
cache was not being cleared which could lead to potential
incorrect values.

The work to start using the new cached configs will come in the
next couple of commits...
Use config cache where possible

This converts many of the config lookups that are done around the
library to use the repository config cache.  This was everything I
could find that wasn't part of diff (which requires a larger fix).
Clear repo config cache when cfgs are set

This is a conservative change, but it seemed like the only safe
thing to do -- i.e. clear the cvar cache when a config gets set.
Improve diff config options handling

This makes diff use the cvar cache for config options where
possible, and also adds support for a number of other config
options to diff including "diff.context", "diff.ignoreSubmodules",
"diff.noprefix", "diff.mnemonicprefix", and "core.abbrev".

To make this natural, this involved a rearrangement of the code
that allocates the diff object vs. the code that initializes it
based on the combination of options passed in by the user and
read from the config.

This commit includes tests for most of these new options as well.
Make sure diff output is cleared on error
Merge pull request #1499 from arrbee/fix-diff-config-usage

Support more diff config options and use the config cache more
repo: Add `git_repository__cleanup`
docs: formatting fixes
git_atomic_ssize for 64-bit atomics only on 64-bit platforms
Merge pull request #1504 from ethomson/git_atomic_ssize

git_atomic_ssize for 64-bit atomics only on 64-bit platforms
Parse shorthand refspecs as valid

Relax the ONELEVEL ref naming rules so the refspec parsing code can
ask for 'master' to be considered valid.
remote: dwim the refspecs according to the remote's advertised refs

As git allows you to store shorthand refspecs in the configuration, we
need to do this ourselves.
push: don't send a packfile when only issuing delete commands

For update and create commands where all the objects are known to
exist in the remote, we must send an empty packfile. However, if all
we issue are delete commands, no packfile must be sent.

Take this into consideration for push.
travis: test push

Create a test repository in the VM and set up git-daemon so we can
use it to test the push code.