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
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
Syncs submodules after remote update (closes #370)

Previously, the Git code avoided cloning a local copy of the local
database for a repository if the repo already existed (and instead tried
to fetch). However, fetching does not sync and reinitialize submodules,
which would require more work.

To avoid this problem, and possibly other subtle updating issues in the
future, the code now wipes the local clone whenever it detects that the
HEAD of a particular branch has changed. This avoids subtle
inconsistencies between fresh clones and updates.

Note: This only affects local-to-local clones. It does not initiate any
new network activity. It may require some additional disk usage, but
only when a remote fetch that was already happening discovers new
commits on the checked-out branch.