extra::test: define an opaque function to assist with accurate
benchmarking.

This allows a result to be marked as "used" by passing it to a function
LLVM cannot see inside.
extra::test: inline BenchHarness.iter to reduce overhead.

This ensures we're not measuring the cost of a virtual call, as the
closure will almost certainly be inlined after `iter` is inlined.
arena: use `black_box` to stop the benchmarks being DCE'd.

Before:

    test test::bench_nonpod_nonarena  ... bench:        62 ns/iter (+/- 6)
    test test::bench_pod_nonarena     ... bench:         0 ns/iter (+/- 0)

After:

    test test::bench_nonpod_nonarena  ... bench:       158 ns/iter (+/- 11)
    test test::bench_pod_nonarena     ... bench:        48 ns/iter (+/- 2)

The other tests show no change, but are `black_box`'d anyway so that
they don't change in future.