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?
How come this change? This was testing that re-running `cargo test` would be ok (in terms of freshness)