Add `cargo-bench`, which runs benchmarks at --opt-level=3

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?
cc @wycats, do you haven an opinion on the name of this directory? I would expect `bench`, but `benches` isn't so bad.