Pass all formats via --extern for libs

While we support the `crate_type` key in the manifest, we need to pass through
all crate types to the `--extern` flag.

Closes #177
Add a `cargo run` command

This currently only supports executing the `src/main.rs` convention, no other.

Close #149
auto merge of #189 : alexcrichton/cargo/all-crate-types, r=wycats

While we support the `crate_type` key in the manifest, we need to pass through
all crate types to the `--extern` flag.

Closes #177
auto merge of #190 : alexcrichton/cargo/cargo-run, r=wycats

This currently only supports executing the `src/main.rs` convention, no other.

Close #149
Allow tables in configuration
Allow configuratin ar/ld for rustc

This adds a new .cargo/config option which allows configuring the ar and linker
tools that rustc invokes. This should aid in any cross-compilation attempts.