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.
This goes contrary to what we do in the rest of the library, which is that if a function fails, none of the output parameters should be assumed to be filled. Returning an error and a partial result is going to be at the least very confusing for anybody trying to read over this code.