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.
- [x] `git_indexer_stats` is now called `git_transfer_progress`, and its fields have changed names and semantics. 
  - This 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.
  - This needs review, see 7c3646eb7a1f179beb9a78ebb636793414bfb9d7
- [x] Once the C++ compiles, the JS API surface will have to change to match.