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?
The structure of this has changed slightly since this was first written, sorry about the rebase conflicts, but could you update this to more closely mirror `cargo-test` and `cargo::ops::cargo_test`?