Prepare for buildbot automation

* The installation script was modified to recognize when its running on windows,
  as well as tweaking how it downloads and installs snapshots. The goal here was
  to make the script runnable on buildbot for mac/linux/windows with 32/64 bit
  options on mac/linux.

* The installation script now install rustc to `rustc/bin` in the local
  directory to have parallel builds on buildbot.

* The tests now store all their temporary state locally in the build directory
  to enable parallel builds on buildbot.

* A shell test is ignored which assumed the presence of a TTY output.
auto merge of #70 : alexcrichton/cargo/buildbot, r=wycats

* The installation script was modified to recognize when its running on windows,
  as well as tweaking how it downloads and installs snapshots. The goal here was
  to make the script runnable on buildbot for mac/linux/windows with 32/64 bit
  options on mac/linux.

* The installation script now install rustc to `rustc/bin` in the local
  directory to have parallel builds on buildbot.

* The tests now store all their temporary state locally in the build directory
  to enable parallel builds on buildbot.

* A shell test is ignored which assumed the presence of a TTY output.
Error out on ssh dependencies (fixes #55)
auto merge of #72 : Arcterus/cargo/master, r=alexcrichton

Now Cargo should give a normal error message rather than a task failure when encountering an SSH URL as a dependency.
Add command line help text for new subcommand 'cargo test'
Remove superfluous newline
s/,/:/ in what appears to be JSON.
Remove/refactor some .unwraps.

Many of these had some precondition being changed that guaranteed they'd
never happen, but could be expressed to just avoid the `.unwrap`
entirely (easier to check).

Other `Option` unwraps were changed to have a mildly more informative
error message by using `.expect`.
auto merge of #78 : huonw/cargo/minor-de-.unwrapping, r=alexcrichton

I don't think any of the `.unwrap`s I touched can actually be hit since they all seem to have checks earlier, but reducing the number of calls is always nice and makes the code easier to verify.

I'm not sure if the `,` -> `:` commit is actually correct, I was just working from the surrounding context.
Use a custom rm_rf to paper over windows git funkiness
auto merge of #81 : alexcrichton/cargo/fix-windows, r=wycats
auto merge of #75 : samebchase/cargo/add-help-for-test, r=alexcrichton
Warn about unused TOML keys

Closes #27
Account for trailing / in URLs when determining on-disk location. Fixes #84.

No tests because there's no preexisting network tests.
Add a hack to make github urls case-insensitive. Fixes #84
Add tests for URL canonicalization and canonicalize .git extensions
Future proof URL canonicalization tests
Merge pull request #88 from brson/fix

Basic URL canonicalization. Fixes #84
Revert "Basic URL canonicalization. Fixes #84"
Merge pull request #89 from rust-lang/revert-88-fix

Revert "Basic URL canonicalization. Fixes #84"