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 part seems odd. It's not about cleanup but about setting the outputs. I'd rather see the contents of the 'else' put before the cleanup label and we can leave everything after cleanup to be freeing memory.