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.
So I confess that I'm still a little confused as to what's going on here - it seems like we're checking things out and then promptly removing them from the index?  I've been meditating upon what to do, but I'm just not sure I understand the stage / unstage mechanism.