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.
Pedantic, I know, but I would prefer to talk about the changes and applying them to both the working tree and the index, instead of talking about the working tree's changes and the index's changes - which a quick read might suggest that they might be two different sets of changes.  How about "Try to reinstate the changes to not only the working tree, but also the index."