Add handling for Stash

Hey Michael,

I saw your post here https://news.ycombinator.com/item?id=5822989 and wanted to add support for Stash as well. In the process I have changed your simple code somewhat and introduced a lot of code replication between git-open and git-pull-request. However, I added a "unit test" for both with a range of possible URLs (OK, it fails for the git protocol, but you're not going to be pushing on git://).

Let me know what you think.

Matt