push: use the common refspec parser

There is one well-known and well-tested parser which we should use,
instead of implementing parsing a second time.

The common parser is also augmented to copy the LHS into the RHS if the
latter is empty.

The expressions test had to change a bit, as we now catch a bad RHS of a
refspec locally.
Fixed a couple Clang warnings
Fixed active_refspecs field not initialized on new git_remote objects

When creating a new remote, contrary to loading one from disk,
active_refspecs was not populated. This means that if using the new
remote to push, git_push_update_tips() will be a no-op since it
checks the refspecs passed during the push against the base ones
i.e. active_refspecs. And therefore the local refs won't be created
or updated after the push operation.
Merge pull request #2699 from swisspol/fix_warnings

Fixed a couple Clang warnings
Merge pull request #2693 from libgit2/cmn/push-refspec-refactor

push: use the common refspec parser
Merge pull request #2671 from swisspol/remote_create_fix

Fixed active_refspecs field not initialized on new git_remote objects
Add test script
Added Xcode script
Added git_stash_apply() and git_stash_pop() APIs