.get() -> []

This fixes the build, which was broken due to the warnings.
replace .get() with .[]
Start accepting [lib], allow `bin = []`

This commit starts to accept `[lib]` as a single library per package. It also
allows opting-out of binaries/tests/examples with a top level `foo = []` rather
than taking an empty array to mean that inference should be enabled.

cc #327
Deprecated [[lib]] in favor of [lib]
wip: Add `cargo-bench`, which runs benchmarks at --opt-level=3
replace "\n\n" with real newlines in test output
Fix issues related to git updates

We observed that after updating the git repo in a test, unless we waited
for 1s, we got intermittent cases where a subsequent update of the git
source would not pick up the changes.

We observed this both with the git CLI and the branch using libgit2.
There may be a better solution, but we did not find it.
Mac builder DNS is still stale, use S3 urls
auto merge of #366 : steveklabnik/cargo/get_to_subscript, r=alexcrichton

This fixes the build, which was broken due to the warnings.
auto merge of #307 : erickt/cargo/bench, r=wycats

This adds initial support for benchmarking at `--opt-level=3` for cargo. It's run just like `cargo-test`, and can actually run tests at the higher optimization level with `cargo bench -- --test`.

One question I had though is if we should include the `-Zlto` for link time optimizations. I'm not sure how well supported that is. What do you all think?
auto merge of #378 : wycats/cargo/fix-git-issues, r=alexcrichton
auto merge of #369 : alexcrichton/cargo/issue-327, r=wycats

The syntax was originally chosen to perhaps allow multiple libraries in the future, but that is less and less likely to happen at this point. This commit deprecates the now-misleading `[[lib]]` in favor of `[lib]` to indicate that only one can be present.

This does not start allowing `[bin]` or `[example]` and such as I felt that it was too many ways to specify what's essentially the same thing. This also as a bonus allows a top-level `bin = []` to completely opt-out of binary inference (as well as for tests and examples).

Closes #327
Move back to static.rust-lang.org

The mac bots have been fixed
Fix code to be compilable with latest rustc:
- splitn arguments order

Closes #371
static.rust-lang.org may be stale again?
auto merge of #372 : jauhien/cargo/master, r=alexcrichton

- splitn arguments order
- hasmap indexing

Closes #371
Ensure TARGET is always present for build commands
auto merge of #386 : alexcrichton/cargo/target-always-present, r=wycats
Use libgit2 for driving git instead of the CLI

In general relying on external programs is dicey and tricky as they're very
different across systems in both how they're used as well as what versions
you'll find. Instead of binding to the least common denominator of CLI, we can
code against an exact version of libgit2.

This introduces a build-time dependency on cmake which libgit2 requires to build
itself, which is unfortunate, but thankfully it's only a build time dep. The
build process for libgit2 also automatically detects as many system libraries as
possible to use (if available), falling back to bundled versions if not
available. I have currently not figured how to control this, so the link-config
package is used to build libgit2 which requires that pkg-config be installed to
build cargo as well.

Closes #138
Add submodule test from #381