Fix missing variable assignment in resizing wait strategy implementation

The resizing strategy spins briefly before yielding. If the required
number of slots becomes available during the spin loop, the strategy
should exit early. However, I somehow forgot to assign the return value
from spin_for_consumer_retries. This would have had only a very minute
effect on performance, and no impact on correctness. This change fixes
the issue.
ResizingWaitStrategy: reset timeout if pipeline moves

If the pipeline has made progress recently, then it must not be
deadlocked (as of yet), and the strategy should keep waiting.
Remove release batching optimization from SingleConsumerSequenceBarrier

It turns out that it wasn't improving performance. Removing it should
improve latency in multi-stage pipelines (the benchmarks to prove it
haven't been written yet).
UnicastThroughputTest: factor out CommonTestOpts struct

This change, and related changes, will facilitate reuse of the argument
processing code from other tests.
UnicastThroughputTest: split parse_args into benchmark_utils.rs
Add default number of iterations to benchmark utility's usage string

This change moves handling of the default number of iterations into
benchmark_utils.rs and exposes it in the usage string.
Port code to latest rust master as of now

Previous rust version: 25431774a933a3b0c5212ea45150660544dec1ec
Now building with:     97dd72620002ff8476ff62d425eb730fdef513a1