Added git_stash_apply() and git_stash_pop() APIs

This is a tentative implementation of git_stash_apply() based on the actual Git implementation found at https://github.com/git/git/blob/master/git-stash.sh#L440.

Once you have git_stash_apply(), it's trivial to implement git_stash_pop() so I also added it.
Hmmm... then this summary of the flag is very misleading IMO:
```
/** Allow safe updates plus creation of missing files */
	GIT_CHECKOUT_SAFE_CREATE = (1u << 1),
```

But more importantly, replacing `GIT_CHECKOUT_SAFE_CREATE` by `GIT_CHECKOUT_SAFE` works in `apply_untracked()` but not in `apply_modified()`:

```
F.F.F

  1) Failure:
stash::apply::no_reinstate_index [/Users/pol/Source/libgit2-fork/tests/stash/apply.c:59]
  Function call failed: (git_stash_apply(repo, 0, 0))
  error -13 - 2 conflicts prevent checkout

  2) Failure:
stash::apply::reinstate_index [/Users/pol/Source/libgit2-fork/tests/stash/apply.c:76]
  Function call failed: (git_stash_apply(repo, 0, 1))
  error -13 - 2 conflicts prevent checkout

  3) Failure:
stash::apply::pop [/Users/pol/Source/libgit2-fork/tests/stash/apply.c:100]
  Function call failed: (git_stash_pop(repo, 0, 0))
  error -13 - 2 conflicts prevent checkout
```