bench: Let units tell us of internal rounds

We don't want to call each unit a million times, to avoid overhead from
function calls; yet, we want to run a unit multiple times for each
round. We already have the concept of "factor", but each unit needs to
apply the factor inside itself, and the benchmarking suite has no clue
about it.

By bringing it outside of each unit and into the benchmark suite we can
reliably know how many iterations per round are going to happen, and we
can scale the timing per round appropriately. This gives us the ability
to have timing per iteration, instead of per round, and a better
resolution on the timing itself.
bench: Use the newly added set/get_rounds_per_unit()
bench: List formats in the help output
bench: Remove default to CSV output
bench: Rename function for clarity
bench: Add matrix interpolation
bench/matrix: Perform 10000 iterations per round
bench: Add a default unstructured output

So we can run the benchmarks without any specific format and still have
something printed out on the screen without the --verbose switch.
bench: Fix off by one error
bench: Add `benchmark` build target

Just runs the benchmarks without dumping the results into a formatted
file.