Switch to using hosted-git-info to normalize urls to have greater consistency

This allows it to understand urls the same way npm-package-arg does, using the same code. I believe this also addresses #14. This also fixes #51.

It does do some weird things to maintain current behavior, maybe it shouldn't:

1. It changes the protocol for github dependencies from https to git+https.
2. Using ssh repository paths for gists *only*.

Behavior changed:

1. Repositories now use https:// urls, not git:// urls.
2. ssh paths now start with a slash for gists, eg, git@gist.github.com:/123456 – this is changed to match Githubs current defaults. (Presumably to remove parsing ambiguity for things that thought the number was a port.)
3. https repository urls now get a .git on the end
4. homepage urls derived from github repositories now link to #readme (which is consistent with how `npm docs` uses the homepage field)
I think, in order to not confuse those who come later, you can either put all of this on one line, or use the ternary operator, but not both. 🏄