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.
Wow that looks like a bug, because this returns expected results:

```
> url.parse('git://git@github.com:bower/Bower.git')
{ protocol: 'git:',
  slashes: true,
  auth: 'git',
  host: 'github.com',
  port: null,
  hostname: 'github.com',
  hash: null,
  search: null,
  query: null,
  pathname: '/:bower/Bower.git',
  path: '/:bower/Bower.git',
  href: 'git://git@github.com/:bower/Bower.git' }
> url.parse('ssh://git@github.com:bower/Bower.git')
{ protocol: 'ssh:',
  slashes: true,
  auth: 'git',
  host: 'github.com',
  port: null,
  hostname: 'github.com',
  hash: null,
  search: null,
  query: null,
  pathname: '/:bower/Bower.git',
  path: '/:bower/Bower.git',
  href: 'ssh://git@github.com/:bower/Bower.git' }
```

Do you think if we can prepend a protocol, then use `url.parse`? Still have to get rid of the `:` though.

There's also this: https://github.com/kaelzhang/node-ssh-url

I noted it in the issue: https://github.com/joyent/node/issues/1627

We'd all love to be a regex master like you Patrick, but unfortunately we're not :(