Clean up various compiler warnings
Clean up some memory leaks
Cleanup memory leak in ssh transport
config test: clean up memory leak
clone::local test: isalpha -> git__isalpha
global: clean up openssl_locks on shutdown
submodule test: free submodule
mwindow: clean up pack map at shutdown
revwalk::mergebase test: free memory
iterator: free paths when skipping them
Remove unused warning on non-win32
Merge pull request #2612 from ethomson/warnings

Clean up some warnings
Introduce git_rebase to set up a rebase session

Introduce `git_rebase` to set up a rebase session that can
then be continued.  Immediately, only merge-type rebase is
supported.
git_reset: const the git_signature arg
Introduce git_rebase_abort

Abort an in-progress rebase and move the working directory and
repository back to the ORIG_HEAD state.
Introduce git_rebase_next

`git_rebase_next` will apply the next patch (or cherry-pick)
operation, leaving the results checked out in the index / working
directory so that consumers can resolve any conflicts, as appropriate.
git_rebase_next: write conflicts nicely during rebase
Introduce git_rebase_commit

Commit the current patch of a rebase process.
git_rebase_commit: drop already-picked commits

Already cherry-picked commits should not be re-included.  If all changes
included in a commit exist in the upstream, then we should error with
GIT_EAPPLIED.
git_rebase_next: test that we return GIT_ITEROVER