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.
Merge pull request #1512 from carlosmn/push-delete-only

Fix push for delete-only and add travis rules to test it
Introduce git_oid_compare, an exported oid cmp
Fix fragile git_oid_ncmp

git_oid_ncmp was making some assumptions about the length of
the data - this shifts the check to the top of the loop so it
will work more robustly, limits the max, and adds some tests
to verify the functionality.
Add git_oid_strcmp and use it for git_oid_streq

Add a new git_oid_strcmp that compares a string OID with a hex
oid for sort order, and then reimplement git_oid_streq using it.
This actually should speed up git_oid_streq because it only reads
as far into the string as it needs to, whereas previously it would
convert the whole string into an OID and then use git_oid_cmp.
cmake 2.6 parser bug workaround
Merge pull request #1513 from ethomson/cmake

cmake 2.6 parser bug workaround
don't use uninitialized struct stat in win32
Merge pull request #1516 from ethomson/win32_alternate_nostat

don't use uninitialized struct stat in win32
Merge pull request #1511 from carlosmn/refspec-shorthand

dwim shorthand refspecs for fetch
Make git_oid_cmp public and add git_oid__cmp
Standardize cast versions of git_object accessors

This removes the GIT_INLINE versions of the simple git_object
accessors and standardizes them with a helper macro in src/object.h
to build the function bodies.
Add new src/oid.h
Some cleanups

Removed useless prototype and renamed object typecast functions
declaration macro.
refspec: add direction accessor
remote: add resfpec list accessors

Bring back a way of acessing the git_refspec* from a remote.

Closes #1514
remote: fix a leak when dwim'ing refspecs