More accurate timing through more iterations

Short benchmarks have more noisy jitter. Make tests take around 1-2s to
reduce the variance between runs.
The goal of warmup is twofold: (1) to get everything into cache so we aren't measuring OS-level things and (2) JIT the main paths so that we are measuring steady-state performance instead of JIT latency.  (JIT latency is interesting to measure but not in this case when measuring throughput.)  For very short tests (like the single-ms tests in pflua-bench) we need more than one iteration to do (2).   Some number of hundreds of milliseconds seems appropriate to me for this goal.

With regards to the measurement phase, our goal is to run for not too short and not too long; why not simply aim for a minimum duration and stop looping once that minimum time is reached?  A minumum time does this goal directly :)

What is the goal of the power-of-two thing?