Enable execution without cargo in PATH

This allows usage of cargo without all the executables in your PATH, you only
need to be able to reach the first one.
README uses "its" instead of "it's"
Update hammer.rs to be compatible with the current rust master
Add support for non-transitive dependencies

Development and test dependencies should not be transitively pulled in.
For example, if I use rust-curl, and it happens to use hamcrest for
testing, that does not mean I depend on hamcrest.
Added [dev-dependencies] sections to Cargo.toml

If you put a dependency in [dev-dependencies], it will only be
used when building (or testing) your packages, not other packages that
depend on it.
Fix up dev-dependencies
auto merge of #113 : rust-lang/cargo/dev-deps, r=alexcrichton

Development dependencies are included when building or testing the current package, but not packages that depend on it:

```toml
[dev-dependencies.hamcrest]

git = "https://github.com/carllerche/hamcrest-rust.git"
```
auto merge of #106 : alexcrichton/cargo/no-path, r=wycats

This allows usage of cargo without all the executables in your PATH, you only
need to be able to reach the first one.
auto merge of #110 : bcobb/cargo/patch-1, r=alexcrichton

Just a small grammar change :smile:
Fix missing space typo in single source error
auto merge of #116 : Indiv0/cargo/typofix, r=alexcrichton

Currently, the "single source" error appears like this, with missing whitespace:

    lib/game-of-life $ cargo build --verbose
    An unknown error occurred

    Caused by:
      At the moment, Cargo only supports asingle source for a particular package name (piston).

This fixes the typo.
use [[bin]] instead of [[executable]]
auto merge of #122 : Benny1992/cargo/master, r=alexcrichton

Tried with [[executable]] and got this:

```bash
FizzBuzz (master*) $ cargo build                                                                                                             mri-2.1.2
unused manifest key: executable.name
unused manifest key: executable.path
       Fresh fizzbuzz v0.0.1 (file:/home/benny/Web/RustApplications/FizzBuzz)
```

I think ```executable``` section should be ```bin```
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