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