Canonicalize github urls for the resolver

In addition to canonicalizing checkout locations, this canonicalizes packages
for the resolver. This allows two dependencies with slightly different urls
pointing to the same repository to resolve to the same location and package.

Closes #104
auto merge of #123 : alexcrichton/cargo/canonicalize-github-urls, r=wycats

In addition to canonicalizing checkout locations, this canonicalizes packages
for the resolver. This allows two dependencies with slightly different urls
pointing to the same repository to resolve to the same location and package.

Closes #104
url.path is now a Path, not a String
Use #![crate_name] instead of #![crate_id]
Use --print-file-name instead of --crate-file-name
auto merge of #128 : riccieri/cargo/nightly-fix, r=alexcrichton

On rust-lang/rust@ed47c479d73fd7b57d3b493e03c74e2932733163 (which landed yesterday via rust-lang/rust@b8ef5cf1310a7b1e31d0993885d867a6804597ad), `url.path` now returns a `Path`, not a `String`. This one-line patch makes cargo compile again (at least as of rust-lang/rust@b8ef5cf1310a7b1e31d0993885d867a6804597ad, the `crate_id` changes haven't reached me yet).
auto merge of #129 : riccieri/cargo/no_more_crate_id, r=alexcrichton

This solves warnings about the use of the deprecated `#![crate_id]` attribute, as well as the deprecated `--crate-file-name` command line option. See rust-lang/rust@c3ef04be5589901e7f3d9428ebe8f1eb2bdca7e4 for details.

Note that this won't compile on the current master without #128 (or equivalent). I can rebase after a fix lands
Update with master changes
auto merge of #131 : alexcrichton/cargo/update-to-master, r=update
Add documentation about cargo nightlies
Merge pull request #134 from alexcrichton/nightlies

Add documentation about cargo nightlies
Ensure no more binaries are checked in

Closes #58