Meta-packages
Fix fetch() on git < 1.7.3

Apparently these versions of git are broken for `git fetch $url`, so we have to
resort to `git fetch origin` and then just pray that it hasn't changed in the
meantime.
auto merge of #101 : alexcrichton/cargo/fix-git-1.7, r=wycats

Apparently these versions of git are broken for `git fetch $url`, so we have to
resort to `git fetch origin` and then just pray that it hasn't changed in the
meantime.
Improvements based on the review
auto merge of #100 : rust-lang/cargo/meta-packages, r=alexcrichton

This allows a single git repository to have multiple packages contained inside.

* Cargo will look for `Cargo.toml`s located anywhere inside the project.
* Cargo will stop searching once it reaches a submodule, to avoid accidentally exporting someone else's packages. It is still possible to explicitly depend on packages from a submodule using the `path=` syntax on dependencies.
Don't call generic methods on trait objects

Closes #102
make clean-all via git submodule foreach
auto merge of #107 : alexcrichton/cargo/issue-102, r=wycats

Closes #102
auto merge of #108 : jdeseno/cargo/clean-submodules, r=alexcrichton

Small change. Use git's `submodule` `foreach` command to cleanup dependencies. I think this way you won't have to remember to update the makefile when a dependency is added or removed.
Fixing deprecated JSON call
auto merge of #109 : steveklabnik/cargo/json, r=alexcrichton
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: