Update libgit2 to 0.19.0

:construction::construction_worker: **WIP DO NOT MERGE** :construction_worker::construction:

Libgit2 recently released v0.19.0, and there are a number of improvements that node-gitteh could take advantage of (see #8).

However, there are also a number of API changes that need to be adjusted for. In some cases this will probably mean changing the gitteh API as well.

A quick summary:

- [x] The `GIT_DIR_*` macros were changed into an enum, and their names changed.
- [ ] `git_indexer_stats` is now called `git_transfer_progress`, and its fields have changed names and semantics. (needs review, see fe575ad2577ffab0b4aee2eff180965506b03684)
- [x] All the calls that ended with `_oid` now end with `_id`
- [x] Callbacks passed to `git_submodule_foreach` now take a `git_submodule*` as a parameter. We may be able to do better inside `Repository::SubmoduleListCallback` with this, but for now I've just added the parameter to the signature.
- [ ] Push and fetch refspecs are now arrays, which affects the way we create remotes.