Normalize GitHub urls

fixes #7

builds on top of #78

ran this though all registered packages and it covers all of them except the following

```JSON
{
    "name": "ember-build-validations",
    "url": "git://github.com/dockyard/ember-builds/tree/master/validations"
},{
    "name": "grid-generator#1.0.1",
    "url": "git://github.com/martinmaricak/Grid-Generator/releases/tag/1.0.1"
},{
    "name": "kojs",
    "url": "git://github.com/SteveSanderson/knockout/blob/master/build/output/knockout-latest.js"
},{
    "name": "linq",
    "url": "git://github.com/mihaifm/linq/blob/master/linq.js"
},{
    "name": "RangeSlider",
    "url": "git://ghusse.github.com/jQRangeSlider"
},{
    "name": "squeezr",
    "url": "git://github.com/jkphl/squeezr/tree/master/squeezr"
}
```

All of which are invalid and can't be downloaded anyway.
I could, however the reason I didn't originally was becuase url.parse doesn't parse ssh logins
```
url.parse('git@github.com:bower/Bower.git')
{ protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: null,
  pathname: 'git@github.com:bower/Bower.git',
  path: 'git@github.com:bower/Bower.git',
  href: 'git@github.com:bower/Bower.git' }
```

If it makes you feel anybetter, the regex looks a lot more complex than it really is becuase of the amount of noncapturing groups (`?:`), and character escaping.

WIthout them, this

`/^(?:(?:git:\/\/|https?:\/\/(?:(?:\w+\:)?\w+@)?)|git@)(?:www\.)?github.com(?:\:|\/|:\/)([^\/]+)\/(.*?)(?:\.git)?(?:\/)?$/`

becomes this

`((git://|https?://((\w+\:)?\w+@)?)|git@)(www.)?github.com(:|/|:/)([^/]+)/(.*?)(.git)?/?`

and when spaced out for readability

`( ( git:// | https?://((\w+\:)?\w+@)?) | git@ )  (www.)? github.com ( : | / | :/ ) ( [^/]+ )/ ( .*? )( .git )? /?`

[here is a railroad diagram showing everthing as well](http://www.regexper.com/#%2F%5E(%3F%3A(%3F%3Agit%3A%5C%2F%5C%2F%7Chttps%3F%3A%5C%2F%5C%2F(%3F%3A(%3F%3A%5Cw%2B%5C%3A)%3F%5Cw%2B%40)%3F)%7Cgit%40)(%3F%3Awww%5C.)%3Fgithub.com(%3F%3A%5C%3A%7C%5C%2F%7C%3A%5C%2F)(%5B%5E%5C%2F%5D%2B)%5C%2F(.*%3F)(%3F%3A%5C.git)%3F(%3F%3A%5C%2F)%3F%24%2F)


That all being said, I am more than happy to do whatever you'd like, just let me know which way to go